首頁 > web前端 > js教程 > 主體

react中fetch之cors跨域請求的實作方法

亚连
發布: 2018-05-30 14:01:49
原創
5222 人瀏覽過

本篇文章主要介紹了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.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!