Вызовы API не перенаправлены на нужную цель, несмотря на добавление прокси - PullRequest
0 голосов
/ 27 января 2019

Несмотря на добавление прокси, вызовы API не перенаправляются на требуемый целевой URL.

Я создал приложение chatbot с использованием create-реагировать-приложение.Я хочу перенаправить все вызовы API, сделанные с http://localhost:3000/ на http://localhost:5000/, и для этого я настроил прокси согласно инструкциям в https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development#configuring-the-proxy-manually

. При компиляции кода кажется, что проксибыл добавлен, но при запуске приложения в браузере вызовы API не были перенаправлены на http://localhost:5000

Код настройки прокси:

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
    app.use(proxy('/api/*', { target: 'http://localhost:5000/' }));
}

Вызовы API:

const chatbot = require('../reactbot-backend/chatbot')

module.exports = app => {

app.get('/', async (req, res) => {
    res.send({'hello': 'johnny'});

});

app.post('/api/df_text_query', async (req, res) => {
    let responses = await chatbot.textQuery(req.body.text, req.body.parameters);
    res.send(responses[0].queryResult);
});

app.post('/api/df_event_query', async (req, res) => {
    let responses = await chatbot.eventQuery(req.body.event, req.body.parameters);
    res.send(responses[0].queryResult);
});
};

При компиляции кода я получаю следующее:

[0] [HPM] Proxy created: /api/*  ->  http://localhost:5000/
[0] Starting the development server...
[0]
[0] Compiled successfully!

Это ошибка, полученная при вызовах API:

http://localhost:3000/api/df_event_query:1 Failed to load resource: net::ERR_EMPTY_RESPONSE

createError.js:17 Uncaught (in promise) Error: Network Error
    at createError (createError.js:17)
    at XMLHttpRequest.handleError (xhr.js:87)

http://localhost:3000/api/df_event_query предполагает, что вызовы API небыл перенаправлен

1 Ответ

0 голосов
/ 29 января 2019

добавление changeOrigin:true решило эту проблему

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
    app.use(proxy('/api/*', { target: 'http://localhost:5000/' , changeOrigin: true}));
}
...