如果在AJAX请求中从与URL相同的服务器(域)加载带有$ .getJSON的JS文件,是否可以避免AJAX跨域请求限制? 假设我在serverA.com上有一个web服务,需要从少数其他域上的页面调用,例如subdomain.serverA.com,serverB.com等。 JS位于serverA.com上,并包含在具有绝对URL的不同域上的多个页面上:
<script src="http://serverA.com/ajax.js" />
,而网页网址例如是http://serverB.com/page.html
在这种情况下,$.getJSON('http://serverA.com/service/',...
会避免跨域限制吗?
换句话说,浏览器在评估AJAX请求的同源策略时会查看页面URL或JS源URL吗?
答案 0 :(得分:2)
听起来你问“我可以绕过javascript的跨域限制吗?”
答案是“是”,使用JSONP
这里有很多好消息:
如果这不是您要问的问题,那么您可能需要澄清一点。
答案 1 :(得分:1)
换句话说,浏览器在评估AJAX请求的同源策略时会查看页面URL或JS源URL吗?
相同的源策略基于运行脚本的HTML文档的URL,而不是脚本本身的URL。
如果在AJAX请求中从与URL相同的服务器(域)加载带有$ .getJSON的JS文件,是否可以避免AJAX跨域请求限制?
Yes,但不是,因为从那里加载了JS文件。脚本的URL无关紧要。
答案 2 :(得分:1)
我会推荐Cross Origin Resource Sharing。
而不是JSONP服务的所有者,只需要添加一个标题,该标题提供授权来源的(静态,动态或开放)列表。