以下Dojo代码的加载回调返回null。应该没有任何问题,因为jQuery的ajax运行正常。我在这里缺少什么?
Dojo版本 - 无效
dojo.xhrGet({
url:"http://localhost:11039/",
handleAs:"json",
load: function(data){
console.log(data); // Prints null
},
error: function(err){
console.log('Error: ' + err);
}
});
jQuery版本 - 正常工作
$.ajax({
url:"http://localhost:11039/",
type: 'GET',
dataType: 'json',
success: function(res){
console.log(res) // Prints some JSON
},
error: function(err){
console.log('ERROR: ' + err);
}
});
查看Firebugs网络标签我注意到jQuery版本实际上发送了一个GET请求:
GET localhost:11039 200OK localhost:11039 62.8KB
而Dojo版本......“OPTIONS”?
OPTIONS localhost:11039 200OK localhost:11039 62.8KB
其他详细信息:
答案 0 :(得分:0)
Dojo发送OPTIONS请求通常意味着dojo将其视为跨域请求。
OPTIONS请求正在检查Access-Control-Allow-Origin标头,以查看是否应该执行该请求,即使它被视为跨域。
有关详细信息,请参阅https://developer.mozilla.org/En/HTTP_Access_Control