node.js - 前后端分离跨域问题
伊谢尔伦
伊谢尔伦 2017-04-17 13:42:46
[Node.js讨论组]

我前端是用react + redux
后端用node,用superagent来拉取后端数据
拉取本地数据的时候出现跨域问题
XMLHttpRequest cannot load http://localhost:3000/init/redis. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3020' is therefore not allowed access.

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
高洛峰

在路由前面加上

//设置服务器跨域权限
app.use(function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  next();
});
怪我咯

https://developer.mozilla.org/zh-CN/docs...

跨源资源共享标准通过新增一系列 HTTP 头,让服务器能声明哪些来源可以通过浏览器访问该服务器上的资源。另外,对那些会对服务器数据造成破坏性影响的 HTTP 请求方法(特别是 GET 以外的 HTTP 方法,或者搭配某些MIME类型的POST请求),标准强烈要求浏览器必须先以 OPTIONS 请求方式发送一个预请求(preflight request),从而获知服务器端对跨源请求所支持 HTTP 方法。在确认服务器允许该跨源请求的情况下,以实际的 HTTP 请求方法发送那个真正的请求。服务器端也可以通知客户端,是不是需要随同请求一起发送信用信息(包括 Cookies 和 HTTP 认证相关数据)。

在浏览器访客模式下(干净模式),web inseptor WEB调试工具抓一下,是否有OPTIONS协议,如果有——
尝试实现一个OPTIONS协议响应(或者中间件)来处理Access-Control-Allow-Origin,告知浏览器允许跨域

高洛峰

用nginx反向代理后端

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号