• 技术文章 >web前端 >js教程

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

    亚连亚连2018-05-30 14:01:49原创4041
    本篇文章主要介绍了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跨域请求的实现方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:fetch react cors
    上一篇:React怎样在react-router路由实现登陆验证控制 下一篇:解决vue项目报错webpackJsonp is not defined问题
    大前端线上培训班

    相关文章推荐

    • javascript如何获取当前方法名• javascript怎么设置p的值• JavaScript中数组如何遍历• javascript怎么取消点击事件• JavaScript如何获取HTML元素

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网