我正在尝试设置跨域的 GET 请求。域 A 是目标,它有一个名为 /getUser 的服务:
(...)
server.get('/getUser', function(req, res) {
console.log('Call received');
}
(...)
如您所见,它并没有做太多,我只是想确保请求到达。域A有一个公共的js文件,实现了对这个服务的调用:
function callDomainA(){
var url = 'https://domainA.com/getUser?callback=?';
var xhr = _createCORSRequest('GET', url);
if (!xhr) {
console.log('CORS not supported by browser, try jsonp');
_doJSONP(url)
}
else{
xhr.onload = function() {
console.log('Success : ' + JSON.stringify(xhr.responseText));
};
xhr.onerror = function() {
console.log('ERROR : There was an error with the CORS request.');
};
}
xhr.send();
return false;
}
function _doJSONP(){
(...)
}
function _createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr)
xhr.open(method, url, true); // XHR for Chrome/Firefox/Opera/Safari.
else if (typeof XDomainRequest != "undefined") {
xhr = new XDomainRequest(); // XDomainRequest for IE.
xhr.open(method, url);
}
else
xhr = null; // CORS not supported.
return xhr;
}
然后我有域 B,它从域 A 加载 js 脚本,然后执行 callDomainA() 函数:
<script src="https://domainA.com/domainApublicjsfile.js" type="text/javascript"></script>
(...)
callDomainA();
(...)
当我在域 B 中加载包含对域 A 的调用的页面并触发对 callDomainA() 的调用时,代码检测到浏览器 (Firefox) 可以执行 CORS,但我收到的标题指示错误 500 和 ns_error_dom_bad_uri
我会期待这样的事情,因为我在域 A 中没有做任何事情来接受 CORS 请求或任何事情,但我担心请求似乎没有到达服务,或者至少 console.log() 是没有注册任何东西。
我错过了什么吗?
提前感谢您的宝贵时间。