Конфигурация grunt-connect-proxy не поддерживает прокси
Я хотел бы правильно настроить grunt-connect-proxy для разработки и избежать проблем с CORS.
я имею
- веб-сервис REST, работающий на локальном коте по адресу http://localhost:8080/mywebservice
- клиентское приложение, созданное из генератора yeoman (v1.4.8), работающего на порту 9000. Оно подключается к вышеуказанному веб-сервису.
Я установил модуль npm:
>npm install grunt-connect-proxy --save-dev
grunt-connect-proxy@0.2.0 node_modules\grunt-connect-proxy
├── lodash@0.9.2
└── http-proxy@1.11.3 (requires-port@0.0.1, eventemitter3@1.2.0)
моя конфигурация 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
Это звонит в колокол?
1 ответ
Похоже, проблема связана с настройкой сервера служб REST. Используйте фильтр CORS, чтобы избежать этого исключения.
https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html
Реализация может отличаться в зависимости от используемого вами стека.
Я надеюсь, что это может помочь