0

バックエンドでのAngularとNode.jsの連携を理解しようとしています。ただし、2つの間のデータ転送にRESTを使用する方法がわかりません。

私は持っています:

  1. Node.jsバックエンドはポート8000で実行され、さまざまなGETおよびPOSTリクエストに応答します(cURLを介して)。
  2. AngularフロントエンドはApacheを介してロードされ、ポートで実行されます80

当然、JavaScriptコンソールはそれをとして識別しますnot allowed by Access-Control-Allow-Origin

これは一般的にどのように解決されますか?私はそれを間違っていますか?フロントエンドをApacheで実行するべきではありませんか?

4

3 に答える 3

1

これを解決する1つの方法は、クロスオリジンリソースシェアリングを使用することです。ブラウザのサポートもまともです。

于 2013-03-20T09:08:55.640 に答える
1

corsを使用して行うこともできます

npm install cors

const cors = require('cors');

app.use(cors({
    origin: 'http://example.com'
}));

http://example.comは、フロントエンド側のアプリケーションのオリジン/ドメインです。

于 2021-06-21T06:42:13.000 に答える
0

これをNode.jsAPIサーバーに追加します

server.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'OPTIONS,GET,POST,PUT,DELETE');
    res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");
    if ('OPTIONS' == req.method) {
        return res.send(200);
    }
    next();
});
于 2014-11-07T09:29:19.060 に答える