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

本篇文章主要介绍了react中fetchcors跨域请求的实现方法,现在分享给大家,也给大家做个参考。

项目中使用了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跨域请求的实现方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2753631.html

(0)
上一篇 2025年3月8日 06:43:30
下一篇 2025年3月8日 06:44:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论