问题描述
jQuery的:
$.ajax({
url : url,
type : 'GET',
dataType: 'json',
data: {
'FN' : 'GetPages',
'PIN' : '7659'
},
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: function(data) {
alert('succsess');
console.log('data', data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert('error');
console.log(xhr.status);
console.log(thrownError);
}
});
萤火虫的Firefox网络
会发生什么
AJAX的错误:事件被触发,我的的console.log 的输出是:
The AJAX "error:" event gets triggered and my console.log outputs are:
xhr.status - > 0
thrownError - >(空字符串)
thrownError -> (empty String)
这是正常的吗?当我在浏览器中键入URL我收到了文件下载与它的JSON的内容,这不应该是一个问题吗?
推荐答案
感谢@CrimsonChin我知道它是一种同源策略问题
在计算中,同源策略是一个重要的安全理念 对于一些浏览器端的编程语言,如 JavaScript的。上发起的网页上运行的政策允许脚本 来自同一站点相互访问的方法和属性与 没有特别的限制,但prevents获得大多数方法和 跨不同网站上的网页属性。[1]
(从http://en.wikipedia.org/wiki/Same_origin_policy)
授予的JavaScript客户端基本访问你的资源,只需要添加一个HTTP响应头,即:
Granting JavaScript clients basic access to your resources simply requires adding one HTTP response header, namely:
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: http://foo.example.com
OFC,把JSON响应到 JSONP 的响应也将工作。 THX @djakapm
Ofc, turning the JSON response into a JSONP response would also work. Thx @djakapm
这篇关于jQuery的AJAX状态" 200确定] ;,但没有数据响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!