我試圖建立一個GET請求跨域。域A是目標,它有一個名爲/服務的getUser:無法獲取CORS的工作(NodeJS)
(...)
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();
(...)
當我加載包含對域A的調用的域B中的頁面並觸發對callDomainA()的調用時,代碼檢測到瀏覽器(Firefox)可以執行CORS,但收到的標頭指示錯誤500和ns_error_dom_bad_uri
我期望這樣的事情,因爲我沒有在域A中接受CORS請求或任何東西,但它擔心我的請求似乎沒有到達服務,或者至少是console.log()沒有註冊任何東西。
我錯過了什麼?
預先感謝您的時間。
簡化這一點。使用curl或wget向'/ getUser'發出請求。它工作嗎?可能不會,如果不是,則刪除所有客戶端問題。 – Brad