javascript - fetch 请求的疑问?
本文介绍了javascript - 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?
解决方案
按照这个Github issue的说法是,在mode
为no-cors
时,有一些header
是不能改变的,其中就包括Content-Type
。
因此,你把mode:'no-cors'
这行去掉就可以设置Content-Type
了。
这篇关于javascript - fetch 请求的疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文