刚开始玩后端使用node.js求教一些关于接口请求"基础"问题

发布于 2022-09-06 21:28:12 字数 1957 浏览 18 评论 0

不是跨不跨域问题,我是想问, 为什么非同源情况下会请求成功?

(虽然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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

柠檬色的秋千 2022-09-13 21:28:12

Response Headers
Access-Control-Allow-Origin: *

鹿童谣 2022-09-13 21:28:12

同源策略中要保证域名,协议,端口一样。
既然跨域访问自然要涉及处理跨域啦,
express处理比较简单

  1. cnpm install cors --save // 安装模块
  2. var cors = require('cors') // require模块
  3. app.use(cors()) // use一下就好啦

即可解决跨域

漫漫岁月 2022-09-13 21:28:12

建议了解一下浏览器的 同源策源跨域资源共享
可以参考一下阮一峰老师的博客链接描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文