2

サーバーのセットアップがあり、すべてがうまくいっていましたが、エラーが発生しています

   ....  is not allowed by Access-Control-Allow-Origin

私の Angular.js サイトをホストする Grunt サーバーはポート 9000 にあり、残りのサービスはポート 8678 にあるため、これは非常に奇妙です。

とにかくこれを見つけた

  https://gist.github.com/Vp3n/5340891

これは、うなり声サーバーでCORSを有効にする方法を説明していますが、私のうなり声ファイルは同じようには見えません...これは私のうなり声ファイルの現在の部分です

  connect: {
      options: {
        port: 9000,
        // Change this to '0.0.0.0' to access the server from outside.
        hostname: 'localhost'
      },
      livereload: {
        options: {
          middleware: function (connect) {
            return [
              lrSnippet,
              mountFolder(connect, '.tmp'),
              mountFolder(connect, yeomanConfig.app)
            ];
          }
        }
      },
      test: {
4

2 に答える 2

9

「私のうなり声ファイルが同じように見えない」とはどういう意味かわかりませんが、middlewareオプションが配列を返す関数を受け入れることを示す grunt-contrib-connect ドキュメントのドキュメントを読む必要がありますミドルウェア。

参考にしたGistはCORSが可能なシンプルなミドルウェアです。

あなたの場合、次のようになります。

connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost'
  },
  livereload: {
    options: {
      middleware: function (connect) {
        return [
          lrSnippet,
          mountFolder(connect, '.tmp'),
          mountFolder(connect, yeomanConfig.app),
          function(req, res, next) {
            res.setHeader('Access-Control-Allow-Origin', '*');
            res.setHeader('Access-Control-Allow-Methods', '*');
            next();
          }
        ];
      }
    }
  },
  test: {
于 2013-06-22T23:20:27.147 に答える
0

私は同じ問題に直面しており、Grunt を正しく動作させることができません。Gruntfile.js の対応するフラグメントを次に示します。

connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: '0.0.0.0',
    livereload: 35729
  },
  livereload: {
    options: {
      open: true,
      base: [
        '.tmp',
        '<%= yeoman.app %>'
      ]
    }
  },

Access-Control-Allow-...Headers をに設定するためにミドルウェアで更新する正しい方法は何でしょう*か?

于 2013-11-22T00:08:13.640 に答える