刚开始玩后端使用node.js求教一些关于接口请求"基础"问题
不是跨不跨域问题,我是想问, 为什么非同源情况下会请求成功?
(虽然console报错,但请求成功了)
**
环境
**
node.js
express
mysql
Ajax
**
问题
**
前端:Ajax发送post请求...
$.ajax({
url : "http://localhost:3000/savePost",
type : "post",
dataType: 'json',
data:{title: title, content: content},
success: function (_data) {
alert('提交成功');
},
error: function() {
alert('服务器请求失败!');
}
});
后端:接收到发送得值
router.post ('/savePost', (req, res) => {
let getData = {
title: req.body.title,
content: req.body.content
};
db('insert into newsdetail (title, content) values ("'+getData.title+'", "'+getData.content+'")',
(err, data) => {
if (err) throw new Error(err);
res.json({status: '200', result: 'ok'});
})
});
请教后端这里还需配置或添加什么吗?因为,我前端页面没在环境中,在桌面放了个测试文件
浏览器控制台(Console)在请求过程中会报错,如:
Failed to load http://localhost:3000/savePost: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
这种情况下,虽然这错误,但(Network)请求成功了Status Code:200 OK,数据库也插入成功了。如图
当然,浏览器设置了跨域那个问题是不会报错。
**这正常吗?后端这块是否要添加什么?不了解这个,百度也不晓得怎么问。
求教!!!**
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Response Headers
Access-Control-Allow-Origin: *
同源策略中要保证域名,协议,端口一样。
既然跨域访问自然要涉及处理跨域啦,
express处理比较简单
即可解决跨域
建议了解一下浏览器的 同源策源 和 跨域资源共享
可以参考一下阮一峰老师的博客链接描述