簡體   English   中英

請求的資源上不存在“Access-Control-Allow-Origin”標頭。 NodeJS 和 AngularJS 應用

[英]No 'Access-Control-Allow-Origin' header is present on the requested resource. NodeJS and AngularJS App

我已經閱讀了上述所有鏈接,但它仍然沒有解決我的問題。 節點代碼

app.all('*', (req, res, next) => {
    let allowedOrigins = ['http://localhost:8080', 'http://127.0.0.1:8080'];
    let origin = req.headers.origin;
    if (allowedOrigins.indexOf(origin) > -1) {
        console.log(origin);
        res.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:8080');
    }
    res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
    res.set('Access-Control-Allow-Credentials', 'true');
    res.set('Access-Control-Allow-Methods', "GET,POST,PUT,OPTIONS,DELETE");
    next();
});

angularJS

app.config(function($httpProvider) {
    $httpProvider.defaults.withCredentials = true;
    $httpProvider.defaults.useXDomain = true;
});

我實際上是在點擊 url,它也向我返回 200 OK 響應,但它仍然失敗並顯示這樣的消息。 我已經嘗試了很多關於 SO 的博客和答案,但似乎都沒有幫助,而且每個人都重申了我已經嘗試過的同樣的事情。 失敗的消息

XMLHttpRequest cannot load http://localhost:5040/save. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access.

我在這里只能預測一個問題。

您的 app.use(),必須高於所有請求。

我已經在這種問題上燒了我的手所以我知道。 如果有幫助,請告訴我。 如果沒有,我們將重新開始。

從這里下載名為Cors的 Chrome 插件: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en : //chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en en

它將允許您從任何來源請求任何帶有 ajax 的站點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM