我正在调用一个返回JSON编码对象的服务器。在我可以继续处理之前必须存在此对象,因此我在请求中设置async:false,如下所示:
var response = null;
$.ajax({
type: 'POST',
url: 'ajax/test',
dataType: 'json',
async: false,
data : ({data : requests}),
success: function(data) {
response = data;
}
});
如果设置了async:true,则会返回以下对象:
openGeolocationDialog Object { show=0, data=""}
如果设置了async:true,我会返回相同的对象,但是有一个额外的'jQuery ...'属性:
openGeolocationDialog Object { show=0, jQuery16209069375968417921={...}, data=""}
为什么要归还?我该如何压制它?
答案 0 :(得分:0)
从用户的角度来看,同步请求是不好的:它们会阻止浏览器。
您应该继续处理成功回调:
$.post('ajax/test', {request: data}, function(response) {
// continue here
});
同时查看Deferred。
顺便说一句,如果服务器返回正确的内容类型(即dataType: 'json'
),则不需要application/json
。