javascript - fetch在请求中附加参数,用node搭的服务器获取参数,获取不到

查看:100
本文介绍了javascript - fetch在请求中附加参数,用node搭的服务器获取参数,获取不到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

react写成的app里面,用fetch发请求,用nodeJS搭的服务器接收请求,fetch的请求需要附加请求参数,是写在body里面吗?我这样写了,但是nodeJS那边打印req.bodyundefined

fetch请求的代码:

export const newProject = (projectName)=>dispatch=>{
    return fetch(`${ADDRESS}/settings/createModule`,{
        method: "POST",
          mode: "cors",
         headers: {
            "Content-Type": "application/x-www-form-urlencoded"
          },
          body:projectName
    })
    .then(response=>{
        console.log(response)
    })
}

node服务器的代码:req.hasOwnProperty('body')false,打印Object.keys(req)里面也没有body

var express = require('express');
var app = express();

app.use(require('cors')());
app.post('/settings/createModule',function(req, res){
    console.log(req.body); //undefined
    console.log(req.hasOwnProperty("body")); //false
    res.status(200);
    res.send(projectID);
})
app.listen(9876, function () {
  console.log('Example app listening on port 9876!');
});

用浏览器查看network,参数有发送成功:好绝望啊

解决方案

试试

export const newProject = (projectName)=>dispatch=>{
    return fetch(`${ADDRESS}/settings/createModule`,{
        method: 'POST',
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        credentials: 'include',
        body: `projectName=${projectName}`
    })
    .then(response=>{
        console.log(response)
    })
}

这篇关于javascript - fetch在请求中附加参数,用node搭的服务器获取参数,获取不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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