3
開発用にgrunt-connect-proxyを正しく設定し、CORSの問題を回避したいと考えています。grunt-connect-proxy設定がプロキシを使用しない
私はhttp://localhost:8080/mywebservice
- のREST Webサービスを持っている発電機は、ポート9000上で動作していることは、上記のWebサービスに接続します。
私はNPMモジュールをインストール:
>npm install grunt-connect-proxy --save-dev
[email protected] node_modules\grunt-connect-proxy
├── [email protected]
└── [email protected] ([email protected], [email protected])
私Gruntfile.js設定
require('jit-grunt')(grunt, {
(...)
configureProxies: "grunt-connect-proxy"
});
(...)
connect: {
options: {
port: 9000,
hostname: 'localhost',
livereload: 35729
},
proxies: [
{
context: ['/mywebservice'],
host: 'localhost',
port: 8080,
changeOrigin: true
}
],
livereload: {
options: {
open: true,
middleware: function (connect) {
return [
require('grunt-connect-proxy/lib/utils').proxyRequest,
connect.static('.tmp'),
(...)
connect.static(appConfig.app)
];
}
}
},
(...)
}
grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
(...)
grunt.task.run([
(...)
'configureProxies:server',
(...)
]);
});
クエリは、それがまだ起源http://localhost:9000で見られるように、プロキシを通過する音はありません。私は、次のエラーを受け取りました:
XMLHttpRequest cannot load http://localhost:8080/xmlcompare-rs/xmlcompare. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access.
イサキがコマンドプリントを果たすものの
Running "configureProxies:server" (configureProxies) task
Proxy created for: /mywebservice to localhost:8080
は、それがベルを鳴らしていますか?
ありがとうございました。これは、バックエンドのCORSフィルタで動作します。しかし、私はchangeOriginオプションのおかげでそれが必要ないと思った。とにかくバージョン0.1.11(以降のバージョン)のリリースノートから見る_0.1.11ノード0.10でのWebSocketサポートの修正 - 1.1.4へのHTTPプロキシ依存のバンプ、サポートされていないHTTPプロキシオプションの削除(rejectUnauthorized、timeout、 changeOrigin)_ – kdefombelle