Я пытаюсь вызвать REST API в расширении Chrome.Мне удалось заставить работать GET, но я не смог заставить работать POST.Тело на стороне сервера всегда пусто.Вот мой запрос на выборку:
let url = "http://localhost:3000/api/save/one"
fetch(url, { method: "POST", headers: { "Accept": "application/json", "Content-Type": "application/json; charset=utf-8" }, mode: "no-cors", body: JSON.stringify(json) })
.then(resp => console.log(resp))
Когда я исследовал запрос на сервере, я заметил, что тип содержимого на сервере всегда "text / plain; charset = UTF-8".Таким образом, мои заголовки, кажется, не переданы.Тем не менее, заголовок «Принять» прошел.
Это заголовки на сервере:
accept:"application/json"
accept-encoding:"gzip, deflate, br"
accept-language:"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
cache-control:"no-cache"
connection:"close"
content-length:"306"
content-type:"text/plain;charset=UTF-8"
Если я удалю «Принять» из заголовков выборки, я получу это на сервере:
accept:"*/*"
accept-encoding:"gzip, deflate, br"
accept-language:"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
cache-control:"no-cache"
connection:"close"
content-length:"306"
content-type:"text/plain;charset=UTF-8"
Есть объяснение этому?Итак, как заставить работать POST?