4 回答
TA贡献1784条经验 获得超9个赞
据记载,据我所知,你有两个问题:
您没有将“jsonp”类型说明符传递给您
$.get,因此它使用的是普通的XMLHttpRequest。但是,如果服务器对其进行了确认,则您的浏览器支持CORS(跨源资源共享)以允许跨域XMLHttpRequest。这就是Access-Control-Allow-Origin标头进来的地方。我相信你提到你是从file:// URL运行的。CORS头有两种方式表示跨域XHR是正常的。一个是发送
Access-Control-Allow-Origin: *(如果你通过Flickr$.get,它们必须一直在做),而另一个是回显Origin标题的内容。但是,file://URL产生的nullOrigin不能通过echo-back授权。
第一个问题是达林建议使用的迂回解决方案$.getJSON。如果它看到callback=?URL中的子字符串,将请求类型从其默认的“json”更改为“jsonp”会有点神奇。
通过不再尝试从file://URL 执行CORS请求,解决了第二个问题。
为了向其他人澄清,以下是简单的故障排除说明:
如果您尝试使用JSONP,请确保满足以下条件之一:
你正在使用
$.get并设置dataType为jsonp。您正在使用
$.getJSON并包含callback=?在URL中。如果您正在尝试通过CORS进行跨域XMLHttpRequest ...
确保你正在通过测试
http://。运行的脚本file://对CORS的支持有限。确保浏览器实际支持CORS。(Opera和Internet Explorer迟到了)
添加回答
举报
