2017-01-21 20 views
1

我已經閱讀了所有上述鏈接,但它仍然無法解決我的問題。 節點代碼否請求的資源上存在'Access-Control-Allow-Origin'標頭。 NodeJS和AngularJS應用程序

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; 
}); 

其實我打的網址,它返回我200 OK響應爲好,但它仍然失敗,這樣的消息。我已經嘗試了很多博客和答案,但似乎沒有任何幫助,每個人都重申了我已經嘗試過的同樣的事情。 消息失敗與

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. 

回答

1

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

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

我已經燒了我的手在這類問題所以我知道。讓我知道它是否有幫助。如果不是,我們將重新開始。

+0

謝謝。這就像一個魅力。 –

0

下載Chrome的插件叫做一個Cors從這裏: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

它可以讓你從任何來源請求與阿賈克斯的任何部位。

相關問題