我正在使用加載內置https軟件包的node.js腳本。當使用它,我得到錯誤:如何在僅使用node.js的API調用中禁用'withCredentials'(https package)
XMLHttpRequest cannot load [constructed-api-url]. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:3000' is therefore not allowed access. The credentials mode of an XMLHttpRequest is controlled by the withCredentials attribute.
我如何使用Node.js 4.4.3,其https api docs並沒有真正提到關於withCredentials什麼。
正在使用的腳本是this one。
是否有無論如何使用node.js https設置xhr調用withCredentials爲false?
我期待到這個jQuery AJAX調用(只專注於XHR場)的東西類似:
$.ajax({
type: 'POST', async:true,
url: 'https://someapp.constructed.url/token',
dataType: "json",
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
xhrFields: {
withCredentials: true
},
headers: {
'Authorization': 'Basic ' + appInfo
},
success: function (result) {
var token = result.access_token;
//…
},
error: function (req, status, error) {
if (typeof(req) != 'undefined') {
var msg = status || req.responseJSON.error;
//…
}
}
});
還有另一個非常類似的例子,但這是關係到請求包,我不不想包含在依賴中。除此之外,我用過的腳本已經在使用https。
這是瀏覽器的錯誤,它有無關節點。 –
@AlexeyTen:當然不是節點的錯,但是從jquery ajax示例中可以看出,可以從請求代碼中設置特定的xhr標誌。這可以通過node.js的https模塊完成嗎? – j4v1
節點不關心這個標誌。您應該在瀏覽器中執行的JS代碼中查找它。 –