Почему Angular HttpClient заменяет "\ n" на "↵" - PullRequest
1 голос
/ 09 июня 2019

Отправка тела POST с помощью HttpClient, который либо является строкой, либо является объектом со строкой в ​​качестве значения, заменит любое вхождение "\ n" на "↵".В основном это происходит в Chrome 73. В Firefox кажется, что «↵» отображается как «» при просмотре сетевого вызова в Инспекторе.

Я попытался использовать JSON.stringify и JSON.parse и заменил"↵" с "\ n" безрезультатно.

Stackblitz: https://stackblitz.com/edit/angular-uzxank

Я ожидаю, что тело запроса POST, найденное в инспекторе браузера, будет использовать "\ n", а не "↵».

1 Ответ

1 голос
/ 09 июня 2019

Это не относится к HTTP-клиенту Angular.Это просто, как Chrome форматирует отображение разрывов строк в строках.

Проверьте демонстрацию ниже.

document.getElementsByTagName('button')[0].onclick = () => 
fetch('https://jsonplaceholder.typicode.com/posts', {
    method: 'POST',
    body: JSON.stringify({
      title: 'title',
      body: 'foo\nbar',
      userId: 1
    }),
    headers: {
      "Content-type": "application/json; charset=UTF-8"
    }
  })
  .then(response => response.json())
  .then(json => console.log(json))
Open Dev Tools. Then click:<br>
<button>click me</button><br>
Now check the HTTP call (the one with 201) in the networks tab<br>
Notice the line break is still shown as "↵" in Chrome.<br>
Notice also that the "\n" is properly transmitted, as shown by the response object's "body" field.
...