这似乎是一个非常常见的问题,我已经讨论了几十个关于这个主题的线程。然而,到目前为止,没有一个回应对我有效。基本上,我有一个带有jQuery/AAJAX脚本的页面,该脚本从外部(跨域)页面中提取几个
元素。
我试着把它放在我的.htaccess文件中:
Header set Access-Control-Allow-Origin "*"
以及:
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>
但没有运气。我的AJAX调用是:
$.ajax({
type: 'GET',
url: 'url', //I have the actual URL here of course
cache: false,
contentType: 'text/plain',
dataType: 'html',
crossDomain: true,
success: function( data ) {
//doing stuff with data in here
}, error: function(jqXHR, textStatus, errorThrown) {
alert('critical error. everything is exploding. abort mission.');
}
});
当我在桌面上运行页面时,一切都很正常,但在实际托管服务器上,Chrome中的控制台错误为:
"XMLHttpRequest cannot load http://external_url.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://my_url.com' is therefore not allowed access.
有什么想法吗?
在我的服务器上,我必须在vhostdirectory指令中明确设置url:
Header set Access-Control-Allow-Origin "http://mysite.mydomain.com"
在将接收请求的网站上。