实施CORS时未获得任何响应

时间:2012-08-14 13:17:43

标签: http http-headers xmlhttprequest cross-domain cors

我在我的网站上使用CORS进行跨域通话。虽然如图所示的响应标题对我来说似乎不错,但是,我没有收到任何回复。它仍然是空白的或返回响应。任何人都可以预测我的方法中的错误,看到附加图像吗?

在服务器端,我正在使用此代码段

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Credentials: true ");
    header("Access-Control-Allow-Methods: GET, POST");
    header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");

在客户端,我有: -

function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}

var http899 = getXMLHTTPRequest();

http899.open("GET", modurl, true);
http899.setRequestHeader('Content-Type', 'text/html');
http899.onreadystatechange = useHttpResponse899;
http899.send(null);

enter image description here

2 个答案:

答案 0 :(得分:2)

不一定是完整的答案,但我认为某些浏览器不接受“Access-Control-Allow-Origin”标头中的多个条目。我不知道Firefox是否是其中之一。

如果请求的“Origin”标题位于您要接受的原始列表中,可能会尝试将请求的“Origin”标题复制到响应的“Access-Control-Allow-Origin”中。

答案 1 :(得分:1)

我的服务器出了问题。当我在不同的服务器上尝试相同的代码时,它工作!我正在使用共享主机,它被服务提供商禁用。