为什么使用jQuery AJAX请求将回调参数添加到查询字符串中

为什么使用jQuery AJAX请求将回调参数添加到查询字符串中,jquery,Jquery,我用MVC编写并发送jQueryAjax请求 我不明白,当我使用JQUERY发送AJAX请求时,为什么要在查询字符串中添加“callback”参数,如下所示 http://localhost:39224/Test/TAction/2?callback=jQuery151031896859929189747_1301556762907 这会在返回响应时导致错误 我从未遇到过这样的问题。可能是什么 这里是请求代码 多谢各位 $.ajax({ type: 'POST',

我用MVC编写并发送jQueryAjax请求

我不明白,当我使用JQUERY发送AJAX请求时,为什么要在查询字符串中添加“callback”参数,如下所示

http://localhost:39224/Test/TAction/2?callback=jQuery151031896859929189747_1301556762907
这会在返回响应时导致错误 我从未遇到过这样的问题。可能是什么

这里是请求代码 多谢各位

$.ajax({
         type: 'POST',
         dataType: 'json',
         url: 'Test/TAction/' + id,
         async: false,                   
         success: function (data, textStatus, XMLHttpRequest) {
              var branches = $.parseJSON(data);
         },
         error: function (a, b, c) {
              var d = 1;
         }
});

根据
jsonp
设置文件:

重写中的回调函数名 jsonp请求。此值将为 在中使用,而不是“回调” “callback=?”是查询字符串的一部分 在url中。所以
{jsonp:'onJSONPLoad'}
将导致传递
'onJSONPLoad=?'
到服务器从jQuery 1.5开始, 将
jsonp
选项设置为
false
阻止jQuery添加 将“?回调”字符串添加到URL或 正在尝试将“=?”用于 转型在这种情况下,你 还应显式设置
jsonpCallback
设置。例如,
{
jsonp:false,jsonpCallback:
“callbackName”}


也就是说,在我看来,如果您使用的是jQuery 1.5+,您需要显式地将
jsonp
设置为
false
,尽管我自己还没有尝试过。

在jQuery-1.5中,“回调”是自动添加的,所以您需要配置jsonp

我使用了数百次简单的jQuery AJAX请求,从未遇到过这样的问题。为什么会发生这种事?专家不确定。在1.5中,情况发生了变化,但我并不是说这是1.5的新功能。添加
jsonp
设置是否有效?页面上是否有其他代码使用了$.ajaxSetup()并设置了jsonp?jensgram,我发现了错误。有人把jQuery的版本更新到了1.5,我不知道。我将阅读关于JSONP的文章来解决这个问题。感谢you@theateist很高兴您发现了问题:)