fetch 请求的疑问?

前端是用的fetch,后端是express框架,fetch请求如下:
`

fetch('http://127.0.0.1:8080/userlogin', {

    method: 'post',
    headers: {
      'Content-Type': 'application/json',

    },
    mode:'no-cors',
    body: JSON.stringify(values),
  })
    .then((response) => {

      return response.text()
    })
    .then((responseData) => {
      alert(responseData);

    })
    .catch((error) => {
      console.error('error', error)
    });

`
chrome里面看到的contentType怎么还是text

Request Headers
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Content-Length:39
content-type:text/plain;charset=UTF-8
Host:127.0.0.1:8080
Origin:http://localhost:8000
Referer:http://localhost:8000/login
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Request Payload
view source
{username: "guest", password: "guest"}
password
:
"guest"
username
:
"guest"

明明发送时候写的是 application/json ,怎么header是text?

阅读 2.7k
1 个回答

按照这个Github issue的说法是,在modeno-cors时,有一些header是不能改变的,其中就包括Content-Type

因此,你把mode:'no-cors'这行去掉就可以设置Content-Type了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题