当我在节点服务器上发布json数据时,会导致错误 '对预检请求的响应未通过访问控制检查' 但是当我在php服务器上发布相同的请求时,它可以工作 browser console picture
有人可以告诉我为什么这不能在node.js中工作但是 当我试图通过节点服务器上的邮递员发布数据时,现在没有错误。
这是我的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);
}
});
}
答案 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())