我的應用程序存在CORS問題。AngularJS&Node.js CORS不適用於PUT/POST
我的堆棧使用Express 4的Node.js和AngularJS
我已經嘗試了一些東西,但我不斷收到所有的POST/PUT請求:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
在服務器端我有使用NPM cors
模塊
var cors = require('cors');
var corsOptions = {
origin: [
'http://www.localhost:5555',
'http://www.somedomain.com'
],
methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE', 'OPTIONS'],
allowedHeaders: [
'Content-Type',
'Content-Length',
'Content-Range',
'Content-Disposition',
'Content-Description',
'Access-Control-Allow-Origin',
'Access-Control-Allow-Headers',
'Authorization',
'Origin',
'X-Requested-With',
'X-AUTH-TOKEN'
],
credentials: true
};
app.use(cors(corsOptions));
在AngularJS部分啓用CORS我使用這個:
// App Config
App.config(['$httpProvider',
function ($httpProvider) {
$httpProvider.defaults.withCredentials = true;
}
]);
// Request in the Angular service
var deferred = $q.defer();
var host = 'http://www.localhost:5555';
var id = 'some-id';
var data = {};
$http.put(host + '/roles/' + id, data).
success(function (data) {
deferred.resolve(data);
}).
error(function (err) {
deferred.reject(err);
});
return deferred.promise;
GET請求正常工作。 PUT/POST請求不斷返回上面的相同錯誤。預檢選項是成功的。
感謝
你在本地主機上運行的應用程序的角度對我的作品與CORS?如果你是,你應該添加「http:// localhost」到您的原始選項到corsOption對象。 –
您可能需要創建一個代理http://shawnsimondeveloper.com/nodeproxyangular/ –
請檢查此堆棧溢出http://stackoverflow.com/questions/36002979/xmlhttprequest-cannot-load-and-response-for-preflight- has-invalid-http-status-co/36003110#36003110 –