我正在使用JQuery:
$('#myDiv').load('myApp/url',function(){ });
并且它给出了没有'Access-Control-Allow-Origin'标题出现在请求的资源上由Chrome和firefox到目前为止,任何关于如何解决此问题的直接答案。我没有控制服务器来进行任何配置而我正在使用PHP
答案 0 :(得分:5)
这是一个CORS问题(跨源资源共享),您正试图通过来自两个不同域的ajax请求内容。除非您想要获取数据的域已正确设置CORS标头,否则浏览器将立即取消请求。
这是由于两个不同域之间的通信而发生的。将为您的数据提供服务的域应该设置一些标头,这些标头充当权限,它们告诉哪些域可以从中请求数据,以及允许哪些动词/方法。
答案 1 :(得分:1)
不,这不是一个直接的答案,因为它完全取决于您的系统/服务器设置,以及您可以访问的内容。这是你需要知道的。
一开始--AJAX请求有一个非常严格的"相同的起源"政策。这意味着如果您从包含域example.com
的网站发出了ajax请求,则只能向发送 <{1}}上的网址。
近年来,浏览器已经放松了。如果您正在向 发送请求的服务器具有example.com
标头,并且该标头包含您正在发出请求的服务器的网址/域从,然后将允许该请求。类似question/answer here。
因此,您设置此标头的 取决于您向其发出请求的服务器。如果您可以控制此服务器,请在那里开始使用Google搜索。
如果您无法控制此服务器,则需要向Access-Control-Allow-Origin
页面发出请求,此PHP页面应为{{1向具有您不知道的信息的服务器请求。在浏览器外发生的php
请求不会受到相同的跨域问题的影响。
答案 2 :(得分:-2)
简单的方法是手工完成:
var script = document.createElement('script');
script.src = uri;
script.id = 'scriptid';
document.head.appendChild(script);
这可能是一些浏览器兼容性问题,但是您获得了CORS的强大功能而没有“访问控制 - 允许 - 来源”#39;错误