解決reactaxios跨域訪問一個(gè)或多個(gè)域名的問題-創(chuàng)新互聯(lián)

小編給大家分享一下解決react axios跨域訪問一個(gè)或多個(gè)域名的問題,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

在依安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,依安網(wǎng)站建設(shè)費(fèi)用合理。

1.react + axios 跨域訪問一個(gè)域名

配置非常簡單,只需要在當(dāng)前的 package.json 文件里面配置:

"proxy":"http://iot-demo-web-dev.autel.com", //當(dāng)然,這里是一個(gè)假地址

像這樣:

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

這樣跨域便完成了,當(dāng)然,也可以像網(wǎng)上那樣,多幾段代碼,像這樣:

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

我不知道你們寫入這段代碼會(huì)怎么樣,反正我是會(huì)報(bào)錯(cuò),具體報(bào)錯(cuò)是怎么我這里沒辦法展示,因?yàn)槲业捻?xiàng)目已經(jīng) 運(yùn)行了 npm run eject 這個(gè)命令

報(bào)錯(cuò)的意思大概就是 proxy 希望得到的是一個(gè)字符串,而現(xiàn)在得到的是一個(gè)對(duì)象,所已我只能采取 第一張圖片的方法進(jìn)行跨域

而后我們安裝axios ,當(dāng)然,其他的也行,在 src 目錄項(xiàng)目建一個(gè) api文件, 再在api文件里面建一個(gè) user.js 寫上下面這段代碼

import axios from 'axios'

export function _user(data) {
 return axios.get('device/detail', data)
}

我這里的跨域使用的是第一張圖片上的那種跨域

在你需要發(fā)送請(qǐng)求的地方寫上以下代碼:

import { _user } from '../api/user'

 componentDidMount() {
 let res = _user({})
 console.log(res)
 }

接下來咱們就能愉快的獲得后臺(tái)給我們的數(shù)據(jù)了

上面的那種跨域呢,可以說是非常方便,但是吧,如果后臺(tái)給我們兩個(gè)甚至三個(gè)不同的域名呢   怎么辦,那我們就得使用插件

2.react +axios 跨域訪問多個(gè)域名

安裝插件:npm install --save http-proxy-middleware

安裝好了之后咱們是開始配置啦:

1.首先暫時(shí)運(yùn)行命令將配置暴露出來

npm run eject
or
yarn eject

在這里你可能會(huì)遇到一個(gè)報(bào)錯(cuò):

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

那這個(gè)時(shí)候你可以將報(bào)錯(cuò)百度一下,或者跟著我繼續(xù)操作

報(bào)錯(cuò)的原因呢是因?yàn)樵蹅冊(cè)谑褂媚_手架搭建 react 時(shí),系統(tǒng)會(huì)自動(dòng)給我們添加一個(gè) .gitignore 文件,如果你沒有提交到倉庫過,你就需要先提交到倉庫

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

完成這兩步之后就可以繼續(xù) 命名 npm run eject ,等配置文件暴露完成之后,你的 package.json 可能非常多配置,咱們不用管,在 src 下面建一個(gè) setupProxy.js 在里面寫上下面代碼:

const { createProxyMiddleware } = require('http-proxy-middleware')
module.exports = function (app) {
 app.use(
 createProxyMiddleware('/api', {
  target: 'http://iot-demo-web-server-dev.autel.com',
  changeOrigin: true,
 })
 )
 app.use(
 '/sys',
  createProxyMiddleware({
  target: 'http://localhost:5001',
  changeOrigin: true,
 })
 );
}

找到 scripts 路徑 打開 strat.js

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

在第 117行左右 協(xié)商下面代碼:

require('../src/setupProxy')(devServer) //注意路徑是否正,是你剛才建的那個(gè)文件

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

如此 多個(gè)跨域便成功了,值得注意的就是, 需要在你請(qǐng)求的具體路徑前面加上 api 或 sys 像這樣

解決react axios跨域訪問一個(gè)或多個(gè)域名的問題

看完了這篇文章,相信你對(duì)解決react axios跨域訪問一個(gè)或多個(gè)域名的問題有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

分享標(biāo)題:解決reactaxios跨域訪問一個(gè)或多個(gè)域名的問題-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article28/dhdpcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、定制開發(fā)、企業(yè)建站、網(wǎng)站設(shè)計(jì)公司電子商務(wù)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站