首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript/jquery ajax请求

Javascript/jquery ajax请求
EN

Stack Overflow用户
提问于 2018-06-25 22:03:03
回答 1查看 70关注 0票数 -2

我对这个Ajax请求有一个问题,它会在调用过程中导致错误,它不会在控制台和编译器中显示。

代码语言:javascript
复制
Javascript code: 
jQuery(document).ready(function(){

        jQuery.get({
            url: "https://nonsoloalimentatori.it/tools/download-center/index.php?sku="+sku,
            dataType: "jsonp",
            cache: true,
            success: function(){
                console.log("success");
            },
            error: function(){
                console.log("error");
            }
        }).done(function(){
            console.log("here");
        })


    })

PHP:

代码语言:javascript
复制
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials:');
header('Content-Type: application/json');

function searchJson($sku){
    $array = [];
    $json = file_get_contents('./list.json'); //read the file contente
    $json_data = json_decode($json,true); //creating the json objectt
    $n_elementi = count($json_data); //count the number of object element
for ($mul = 0; $mul < $n_elementi; ++$mul){ //for every element it is 
searched the sku
        if($json_data[$mul]["sku"] == $sku)//and it is compared to the sku 
        given by user
        {
            array_push($array,$json_data[$mul]);//if it is true the element 
        is added to array
        }
}
return $array; //it is returned
}

if(isset($_GET['sku'])){
$result=searchJson($_GET['sku']);

echo json_encode($result, JSON_PRETTY_PRINT);

}
EN

回答 1

Stack Overflow用户

发布于 2018-06-26 04:23:50

对于来自服务器端的jsonp响应,jquery希望它在回调函数下。

请使用以下代码输出服务器响应:

代码语言:javascript
复制
 $callback_function_name = !empty($_GET['callback'])? $_GET['callback'] : 'callback';
 echo $callback_function_name.'('.json_encode($result, JSON_PRETTY_PRINT).')';

回调函数的原因是:在javascript中不允许跨域ajax调用,因此在jsonp中,url的加载方式与我们加载js脚本文件的方式相同(您可以在站点中添加来自不同域的脚本)。然后对加载的脚本进行求值。如果打印普通数据,则不执行任何操作。因此它被传递给调用方JS注册的回调函数进行处理。

您也可以通过在函数中设置: ajax jsonp:"custom_callback_function_name"作为参数来设置您自己的回调函数。在这种情况下,您的服务器端输出应该如下所示:

代码语言:javascript
复制
custom_callback_function_name({...json_data...});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51025374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档