为什么在node.js中没有收到json数据?

时间:2018-05-23 08:02:37

标签: node.js express

当我在节点服务器上发布json数据时,会导致错误 '对预检请求的响应未通过访问控制检查' 但是当我在php服务器上发布相同的请求时,它可以工作 browser console picture

有人可以告诉我为什么这不能在node.js中工作但是 当我试图通过节点服务器上的邮递员发布数据时,现在没有错误。

postman picture

这是我的nodeJS代码

const express = require('express');
const app = express();
app.use(express.json());

app.post('/post', function(req, res){
  res.header('Access-Control-Allow-Origin', '*');
  res.send(req.body);
})

这是从浏览器发送的请求代码

function callAjax(){
  jQuery.ajax({
    method: 'POST',
    url:'http://localhost:3010/post',
    "headers": {
        "content-type": "application/json"
    },
    data: {
        email:'fake@mail.com'
    },
    success: function(data){
        console.log(data);
    },
    error: function(err){
        console.log(err);
    }
   });
 }

2 个答案:

答案 0 :(得分:2)

您必须使用body-parser

var bodyParser = require('body-parser');

app.use(bodyParser.json());

app.use(bodyParser.urlencoded({
   extended: true
}));


app.post('/post', function(req, res){
   res.setHeader('Access-Control-Allow-Origin', '*');

   res.json(req.body);
});

答案 1 :(得分:0)

首先使用cors模块: -

npm install --save cors
var cors = require('cors')
app.use(cors())