我有我的應用程序在本地計算機上運行,它試圖連接到我的遠程nodeJS/Express服務器。我在遠程服務器中設置了標題。允許遠程服務器接受來自本地主機的帶有參數的請求
主要問題:如何讓我的遠程服務器接受來自本地主機的帶參數的請求?人們告訴我,我的請求不起作用,因爲請求的URL和服務器URL不共享相同的域。該請求來自我的本地主機,它試圖訪問我的遠程節點/快遞服務器。 當我在請求中刪除參數時,此事務有效,但當我有參數時不起作用。
這是怎麼了我在遠程服務器上設置頭接受所有請求:
app.use(function (req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "http://localhost:9000");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if(res.headersSent) {
console.log("Headers sent");
}
else {
console.log("Headers not sent");
}
next();
});
此外,res.headersSent
不斷評估,以虛假的,即使我可以看到在我的谷歌網絡選項卡中設置的標頭。爲什麼這個值返回false?
這是怎麼了,我從我的本地主機使我的GET請求,我的服務器:
var req = $http({
url: 'https://20161128t135355-dot-jarvis-hd-live-2.appspot-preview.com/read-message',
method: 'GET',
cache: false,
params: {last_updated: last_updated_time}
});
這篇文章是無益How to enable cross-origin resource sharing (CORS) in the express.js framework on node.js
我覺得params爲導致錯誤,因爲它工作正常當我把它拿出來。我得到這個錯誤:
XMLHttpRequest cannot load https://20161128t135355-dot-jarvis-hd-live-2.appspot-preview.com/read-message?last_updated=0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 502.
所有的解決方案,說要添加/設置頁眉和你可以看到我已經做到了,但我的應用程序仍然給了我同樣的錯誤,當我包括在請求參數。我應該做什麼不同?
你確定頭文件正在接收?你在瀏覽器中看到預檢請求嗎?客戶端的流量是什麼樣的? – ssube
@ssube如何檢查標題是否被接收? –
什麼是錯誤或迴應? –