Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jQuery,为什么成功回调不是';当通过Ajax返回JSON时是否执行?_Php_Jquery_Ajax_Json_Callback - Fatal编程技术网

Php 使用jQuery,为什么成功回调不是';当通过Ajax返回JSON时是否执行?

Php 使用jQuery,为什么成功回调不是';当通过Ajax返回JSON时是否执行?,php,jquery,ajax,json,callback,Php,Jquery,Ajax,Json,Callback,下面的PHP代码通过Ajax将JSON对象返回给客户端 function loadAll(){ $knowledgeHandler = new KnowledgeLevelHandler(); $json = $knowledgeHandler->loadAll(); header('Content-type: application/json'); print $json; } 我为jQueryAjax的成功回调分配了一个测试函数 suc

下面的PHP代码通过Ajax将JSON对象返回给客户端

function loadAll(){
    $knowledgeHandler = new KnowledgeLevelHandler();
    $json = $knowledgeHandler->loadAll();        
    header('Content-type: application/json');
    print $json;
}
我为jQueryAjax的成功回调分配了一个测试函数

successCallback = function(data){
    alert("A");
}

options = {    
    "data": data,
    "async": false,
    "type": "post",
    "success":successCallback        
}
$.ajax(url, options);

当我删除
标题('Content-type:text/json')
在PHP代码中,执行回调,但在执行回调时,不会执行成功回调。怎么了

试着告诉jQuery您期待json回来

options = {    
    "data": data,
    "async": false,
    "type": "post",
    "success":successCallback,
    "dataType": "json"       
}

您还可以添加一个错误回调,以xhr、msg、code作为参数,并输出这些参数,以便更好地了解错误所在。

尝试告诉jQuery您希望返回json

options = {    
    "data": data,
    "async": false,
    "type": "post",
    "success":successCallback,
    "dataType": "json"       
}
您还可以添加一个错误回调,以xhr、msg、code作为参数,并输出这些参数,以便更好地了解错误所在。

尝试以下方法:

options = {    
    "data": data,
    "async": false,
    "type": "post",
    "success":successCallback,        
    "dataType: "json"
}
$.ajax(url, options);
试试这个:

options = {    
    "data": data,
    "async": false,
    "type": "post",
    "success":successCallback,        
    "dataType: "json"
}
$.ajax(url, options);

我认为您需要在jQueryAjax调用中将返回的数据类型指定为JSON

json类型将获取的数据文件解析为JavaScript对象,然后 返回构造的对象作为结果数据

successCallback函数现在将包含一个数据对象,通过它可以访问变量;data.var\u 1、data.some\u other\u var等


Neal

我认为您需要在JQuery AJAX调用中将返回的数据类型指定为JSON

json类型将获取的数据文件解析为JavaScript对象,然后 返回构造的对象作为结果数据

successCallback函数现在将包含一个数据对象,通过它可以访问变量;data.var\u 1、data.some\u other\u var等


Neal

使用同步请求是否有特定原因?也许可以尝试异步?我通常不设置头类型,我只是回显字符串,例如回显json_encode(array(“success”=>true));使用同步请求是否有特定的原因?也许可以尝试异步?我通常不设置头类型,我只是回显字符串,例如回显json_encode(array(“success”=>true));