【发布时间】:2013-08-20 15:19:58
【问题描述】:
我正在尝试发送 CORS AJAX 请求,但似乎失败了:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://enable-cors.org");
xhr.addEventListener("load", function() { console.log(this.responseText); });
xhr.send();
我在浏览http://stackoverflow.com 时从控制台发出此请求。
我收到此错误消息:
XMLHttpRequest cannot load http://enable-cors.org/. Origin http://stackoverflow.com is not allowed by Access-Control-Allow-Origin.
我相信 enable-cors.org 应该发回正确的 Access-Control-Allow-Origin 标头 :)
但这适用于任何其他网站。
另外,console 告诉我一个 Origin 标头已在我的请求中正确发送。
我使用的是 Chromium 28,但 Firefox 也失败了。
HTTP 请求标头是:
Request URL:http://enable-cors.org/
Origin:http://stackoverflow.com
Referer:http://stackoverflow.com/posts/18303449/edit
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
我做错了什么?
【问题讨论】:
-
让我们看看请求和响应标头。
-
我更新了请求标头。响应标头在控制台中“不可用”(Chromium 甚至没有发送请求吗?)。我认为这不是 Chromium 特有的,因为上一版本的 Firefox 也失败了。
-
但是我尝试使用remysharp.com/demo/cors.php,它可以工作。我可能只是针对一个未启用 CORS 的网站(尽管 enable-cors.org 让我感到惊讶)。
-
你想在这里做什么?你为什么要尝试连接到enable-cors.org,你希望得到什么回应?