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

时间:2011-03-31 07:54:42

标签: jquery

我在MVC中编写并发送jQuery AJAX请求。

我不明白为什么当我使用JQUERY发送​​AJAX请求时,'回调'参数被添加到查询字符串中

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;
         }
});

2 个答案:

答案 0 :(得分:2)

根据.ajax()jsonp设置的文档:

  

覆盖回调函数名称   一个jsonp请求。这个值将是   用来代替'回调'   '回调=?'查询字符串的一部分   在网址中。所以{jsonp:'onJSONPLoad'}   会导致'onJSONPLoad=?'通过   到服务器。 从jQuery 1.5开始,   将jsonp选项设为false   阻止jQuery添加   “?callback”字符串到URL或   试图使用“=?”对于   转型。在这种情况下,你   还应该明确设置   jsonpCallback设置。例如,{ jsonp: false, jsonpCallback: "callbackName" }

也就是说,我似乎你需要明确地将jsonp设置为false如果你正在使用jQuery 1.5+,尽管我自己没有尝试过

答案 1 :(得分:0)

在jQuery-1.5中,“callback”会自动添加,因此您需要配置jSONP