簡體   English   中英

在meanjs rest api服務器中啟用cors

[英]enabling cors in meanjs rest api server

我正在基於Meanjs.org最新版本(0.4.0)創建一個api(服務器端),我設法僅拉出MEN部分並在http:// localhost:3000 / api中創建了一個

作為前端部分,我在http:// localhost:4000 /中創建了Angularjs

然后我使用(P)ackage(M)anager 2運行兩個應用程序

我正在嘗試通過使用$resource發送用戶憑據來創建用戶,如下所示

angular.module('users').factory('AuthenticationResource', ['$resource',
    function($resource) {
        return $resource('http://localhost:3000/api/auth/signup', {}, {
            post: {
                method: 'POST'
            }
        });
    }
]);
...
//In my controller
$scope.signup = function() {
    AuthenticationResource.post($scope.credentials, function(response) {
        $scope.authentication.user = response;
        $state.go($state.previous.state.name || 'home', $state.previous.params);
    });
};

在服務器端的express.js

'use strict';

var config         = require('../config'),
    express        = require('express'),
    ...
    cors           = require('cors');

...
module.exports.initModulesServerRoutes = function(app) {
    // Globbing routing files
    config.files.server.routes.forEach(function(routePath) {
        require(path.resolve(routePath))(app);
    });
};
module.exports.initCorsOption = function(app){
    app.options('*', cors());
};

module.exports.init = function(db) {
    // Initialize express app
    var app = express();

    ...
    // Initialise Cors options
    this.initCorsOption(app);
    // Initialize modules server routes
    this.initModulesServerRoutes(app);
    ...
    return app;
};

我正在使用節點cors包啟用cors並只是執行app.options('*', cors()); 全面啟用飛行前

但是,當我嘗試對http://localhost:3000/api/auth/signup進行POST ,我可以看到我的用戶正好保存到數據庫中,但是它沒有任何響應,Chrome控制台是給我這個

XMLHttpRequest無法加載http:// localhost:3000 / api / auth / signup 所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問源' http:// localhost:4000 '。

我錯過了什么?

我認為您在所有路線之前都缺少app.use:

僅表示:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

如果您使用的是npm cors:

app.use(cors());

暫無
暫無

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

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