react中fetch之cors跨域请求
2017-03-28 17:16
381 查看
项目中使用了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.ruanyifeng.com/blog/2016/04/cors.html
以下是php部分的允许跨域域名访问的设置
以下是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.ruanyifeng.com/blog/2016/04/cors.html
以下是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); });
相关文章推荐
- react中fetch之cors跨域请求的实现方法
- React如何解决fetch跨域请求时session失效问题
- 使用fetch轻松解决JS跨域请求问题——无需CORS,jsonp
- 【fetch跨域请求】cors
- React Native 采用Fetch方式发送跨域POST请求
- 基于.Net Framework 4.0 Web API开发(5):ASP.NET Web APIs AJAX 跨域请求解决办法(CORS实现)
- 跨域请求解决方法(JSONP, CORS)
- cors跨域请求,重复提交问题
- React-Native学习笔记之:Fetch网络请求
- 跨域请求——jsonp与cors
- CORS跨域请求以及spring boot集成
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
- 用express实现CORS跨域(上-简单请求)
- 基于CORS 为Jfainl实现跨域请求
- cors实现跨域请求
- React Native探索(五)使用fetch进行网络请求
- 跨域请求 fetch 实现
- ReactNative 封装fetch网络请求
- cors跨域请求
- React Native从零开始(七)Fetch网络请求