Node.js Express отправляет 400 запросов при выполнении строки запроса, содержащей каналы - PullRequest
4 голосов
/ 06 мая 2019

С узлом 12.0.0 и выражением 4.16.4, когда я делаю запрос, содержащий | (символьная труба), он всегда отвечает 400 bad request.

Это пример сервера:

var express = require('express');

var app = express();

app.all('*', function(request, response, next) {
    console.log(request)
    next();
});

app.get('/search', function (request, response) {
    response.send("yeah!");
});

var server = app.listen(8000, function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log('Server listening at http://%s:%s', host, port);
});

если я выполняю запрос GET, такой как http://localhost:8000/search?q=| Журнал от промежуточного программного обеспечения отсутствует, и 400 bad request отправляется.

Мне нужно обрабатывать запросы с помощью каналов, чтобы сохранить старые URL-адреса. Как я могу решить это?

1 Ответ

1 голос
/ 07 мая 2019

Вы можете использовать --http-parser=legacy для временного решения этой проблемы.

node --http-parser=legacy index.js

У меня возникла проблема об этом Ответ HTTP поврежден со статусом 400, когда URL содержит символ канала (|)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...