您好,欢迎访问一九零五行业门户网

react中fetch之cors跨域请求的实现方法

本篇文章主要介绍了react中fetch之cors跨域请求的实现方法,现在分享给大家,也给大家做个参考。
项目中使用了react,当中需要使用fetch来代替ajax。
由于react的create_react_app工具很方便,基本上开箱即用,经过创建项目,输入npm start命令后,便自动监听一个3000的端口,到此前端部分就绪。
具体参考:https://github.com/facebookincubator/create-react-app
后端部分我使用了phalcon。
由于前后端分离,为了方便,我尝试在nginx中使之同域(前端和后台api的顶级域名相同),但phalcon框架是单入口、react监听3000时候,通过nginx反向代理,出现js找不到的问题,于是放弃同域的打算。
因此我配置了两个域名:
1、www.xxx.com
2、data.xxx.com
第一个域名用于react部分,端口号是3000(调试用,正式上线是80)
第二个域名用于api,端口号是80
于是乎出现跨域问题。
cors详细的介绍请看:http://www.jb51.net/article/102694.htm
以下是php部分的允许跨域域名访问的设置
$origin = isset($_server['http_origin'])?$_server['http_origin']:''; $alloworigin = [ 'http://www.xxx.com', 'http://xxx.com' ]; if (in_array($origin, $alloworigin)) { header('access-control-allow-origin: ' . $origin); } header('access-control-allow-methods: put,post,get,delete,options'); header('access-control-allow-credentials: true'); header('access-control-allow-headers: content-type, accept');
以下是fetch部分的ajax请求
let postdata = {a:'b'}; fetch('http://data.xxx.com/admin/login/login', { method: 'post', mode: 'cors', credentials: 'include', headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: json.stringify(postdata) }).then(function(response) { console.log(response); });
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
iview日期控件,双向绑定日期格式的方法
解决iview中时间控件选择的时间总是少一天的问题
基于iview中on-change属性的使用详解
以上就是react中fetch之cors跨域请求的实现方法的详细内容。
其它类似信息

推荐信息