避免AJAX跨域限制

时间:2013-12-11 09:09:44

标签: javascript ajax cross-domain

如果在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吗?

3 个答案:

答案 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

服务的所有者,只需要添加一个标题,该标题提供授权来源的(静态,动态或开放)列表。