Как мне обработать вопросительный знак, отправляемый через URL? - PullRequest
0 голосов
/ 21 ноября 2019

Я использую axios для отправки некоторых строк в мою базу данных. В настоящее время отправляются следующие сообщения:

1: Header -> the value can be anything such as "Who is Michael Scott?"
2: Body -> the value can be anything such as "Why do people quote Michael Scott a lot?"

Используемая им команда axios:

  axios.post(`/post/create/${Header}/${Body}`).then(result => {
    alert("Your post has been added!")
    console.log("Posted")
  }).catch(function (error) {
      // Output error
      console.log(error);
  });

Выход в URL (адресная строка):

http://my_ip_here:3000/api/v1/post/create/Who%20is%20Michael%20Scott?/Why%20do%20people%20quote%20Michael%20Scott%20a%20lot?/

Это в конечном итоге дает мне 404 из-за знака вопроса. Мой вопрос: как мне обрабатывать вопросительные знаки внутри строк, которые передаются в качестве параметра url?

Если это помогает, я использую React.js, Axios и Mysql.

Ответы [ 2 ]

1 голос
/ 21 ноября 2019

Вам необходимо закодировать их URL.

Перед передачей их значения в axios, убедитесь, что вы запустили encodeURIComponent(myString).

Может быть это:

axios.post(`/post/create/${encodeURIComponent(Header)}/${encodeURIComponent(Body)}`).then(result => {...}
0 голосов
/ 21 ноября 2019

Я думаю, если вы используете этот URL: /post/create/${Header}/${Body} не лучшая практика. Если вы используете почтовый метод, я предлагаю вам передать ваши данные в теле.

axios.post(`/post/create/`, {header: Header, body:Body}).then(result => {
    alert("Your post has been added!")
    console.log("Posted")
}).catch(function (error) {
    // Output error
    console.log(error);
});
...