假设我想使用AJAX从不受信任的不同域中检索json文件。 然后我将响应解析为javascript对象,而不进行任何脚本评估。 (我的请求不会发送cookie。)
我不明白为什么浏览器会阻止我这样做。
据我所知,如果我将响应评估为脚本,那么这将是一个安全问题。
我知道有一些解决方法可以实现上述目标。
是否有理由应该阻止我的特定情况,或者是否只是意外地陷入同源拉网?
感谢。
(假设服务器不支持CORS)
答案 0 :(得分:3)
...您无意将响应评估为脚本?
首先,浏览器安全无法确定您打算做什么。
其次,设计相同的源/源限制也可以防止其他事情:例如:看到 http://blogs.msdn.com/b/ieinternals/archive/2009/08/28/explaining-same-origin-policy-part-1-deny-read.aspx
答案 1 :(得分:1)
可以使用跨域AJAX,但远程服务器需要支持CORS,并且可能存在某些标头限制。
大多数应用程序不需要JSONP。如果远程服务器不支持CORS,那么你就会遇到同源垃圾而你必须使用JSONP。
注意:
旧版浏览器不支持CORS。你可能想要使用jQuery或类似的框架(我遇到了Mootools和跨域AJAX的问题,因为我无法弄清楚如何删除一些默认的头文件.jQuery在我的设置上为我开箱即用-up。