javascript - fetch 请求的疑问?

查看:73
本文介绍了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的说法是,在modeno-cors时,有一些header是不能改变的,其中就包括Content-Type

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

这篇关于javascript - fetch 请求的疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆