Здесь Google очень хорошо объяснил cors ( Запросы перекрестного происхождения ).
Я работал над этим, размещая прокси-сервер (на том же локальном сервере, где я размещаю)мой клиент) и перенаправляя все мои одностраничные запросы приложений через него.
Прежде всего, я создал настройку прокси-сервера в ключе devsever файла конфигурации webpack, как это.
devServer: {
proxy: {
//abc is REST API request endpoint on my backend
'/abc': {
//target is where your proxy server is hosted
target: 'http://localhost:5000',
secure: 'false'
},
//xyz is REST API request endpoint on my backend
'/xyz': {
//target is where your proxy server is hosted
target: 'http://localhost:5000',
secure: 'false'
}
},......// rest of the setting
}
ЗатемДля конкретного вызова действия через моего клиента я делаю запрос к своему бэкэнду следующим образом.
axios
.get('/startAppkey', { withCredentials: true })// withCredential enables passing of cookies and session id. If you dont want to creat session you can avoid this.
.then((response) => {
// do stuff with response
})
.catch(function() {
//do stuff
});
Наш клиент готов.Теперь время для прокси-сервера.Сначала установите http-proxy-middleware, Как это.
sudo npm i --save http-proxy-middleware
//it is also avilable on yarn
, затем, Для настройки прокси-сервера здесь есть несколько строк кода.
import * as express from 'express'; // using express to support my middleware
import * as proxy from 'http-proxy-middleware';
const app = express();
// the path /abc and /xyz should be same as you have declared in in webpack config file
app.use('/abc', proxy({ target: 'http://your/backend/api/endpoint'}));
app.use('/xyz', proxy({ target: 'http://your/backend/api/endpoint'}));
//that's it you are done here.