国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

跨域問(wèn)題?無(wú)需擔(dān)心!學(xué)習(xí)如何解決 Axios 的跨域限制

這篇具有很好參考價(jià)值的文章主要介紹了跨域問(wèn)題?無(wú)需擔(dān)心!學(xué)習(xí)如何解決 Axios 的跨域限制。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

跨域是指訪問(wèn)另外一個(gè)域的資源,由于瀏覽器的同源策略,默認(rèn)情況下使用 XMLHttpRequest 和 Fetch 請(qǐng)求時(shí)是不允許跨域的。跨域的根本原因是瀏覽器的同源策略,這是由瀏覽器對(duì) JavaScript 施加的安全限制。

axios跨域解決方案,軟件測(cè)試,軟件測(cè)試,功能測(cè)試,自動(dòng)化測(cè)試,程序人生,職場(chǎng)和發(fā)展

Axios 跨域常見(jiàn)報(bào)錯(cuò)

跨域請(qǐng)求被阻止 (Cross-Origin Request Blocked)

這是由瀏覽器實(shí)施的同源策略導(dǎo)致的錯(cuò)誤。瀏覽器在默認(rèn)情況下不允許從一個(gè)源發(fā)送請(qǐng)求到另一個(gè)源,除非目標(biāo)服務(wù)器明確授權(quán)。如果沒(méi)有采取任何跨域解決方案,瀏覽器會(huì)攔截該請(qǐng)求,并報(bào)告此錯(cuò)誤。

無(wú)法獲取響應(yīng)內(nèi)容 (No 'Access-Control-Allow-Origin' header is present on the requested resource)

當(dāng)使用 CORS (跨域資源共享) 解決方案時(shí),服務(wù)器需要在響應(yīng)頭中添加 Access-Control-Allow-Origin 頭信息來(lái)指示允許訪問(wèn)資源的來(lái)源。如果服務(wù)器沒(méi)有正確配置這個(gè)頭信息或配置不正確,瀏覽器會(huì)報(bào)告此錯(cuò)誤,表示未經(jīng)授權(quán)無(wú)法獲取響應(yīng)內(nèi)容。

請(qǐng)求出現(xiàn)網(wǎng)絡(luò)錯(cuò)誤 (Network Error)

當(dāng)跨域請(qǐng)求在發(fā)送時(shí)出現(xiàn)網(wǎng)絡(luò)錯(cuò)誤(例如目標(biāo)服務(wù)器不可訪問(wèn)、請(qǐng)求超時(shí)等),Axios 會(huì)捕獲這個(gè)錯(cuò)誤,并將其報(bào)告為 "Network Error"。

預(yù)檢請(qǐng)求失敗 (Preflight request failed)

當(dāng)使用 CORS 發(fā)起一些復(fù)雜的請(qǐng)求(例如帶有自定義頭信息或使用 PUT、DELETE 等非簡(jiǎn)單請(qǐng)求類型),瀏覽器會(huì)在發(fā)送真實(shí)請(qǐng)求之前發(fā)送一個(gè) OPTIONS 預(yù)檢請(qǐng)求。如果服務(wù)器沒(méi)有正確處理 OPTIONS 請(qǐng)求或未返回正確的預(yù)檢響應(yīng)頭,瀏覽器會(huì)報(bào)告 "Preflight request failed" 錯(cuò)誤。

代理服務(wù)器錯(cuò)誤

如果使用代理服務(wù)器作為解決方案,但代理服務(wù)器配置有誤或不可用,Axios 可能會(huì)報(bào)告與代理服務(wù)器連接相關(guān)的錯(cuò)誤。

Axios 跨域的解決方法

axios跨域解決方案,軟件測(cè)試,軟件測(cè)試,功能測(cè)試,自動(dòng)化測(cè)試,程序人生,職場(chǎng)和發(fā)展

1. CORS

CORS 需要服務(wù)器設(shè)置 Access-Control-Allow-Origin 響應(yīng)頭,表示該資源可以被指定的域進(jìn)行跨域訪問(wèn)。

// 服務(wù)端代碼
res.setHeader('Access-Control-Allow-Origin', '*'); 

2. 服務(wù)端啟用 CORS

比如 Node.js ?Express 啟用 CORS:

const express = require('express')
const app = express()

app.use(function (req, res, next) {

  // 啟用 CORS
  res.header('Access-Control-Allow-Origin', '*');

  next();  
})

3. JSONP

JSONP 的原理是動(dòng)態(tài)插入

    import axios from 'axios';

axios.get('/api/user?callback=fetchUser');

function fetchUser(user) {
  console.log(user); 
}

服務(wù)端返回 JSON 數(shù)據(jù)并帶上函數(shù)調(diào)用:

  fetchUser({
  name: 'jack'
})

4. 代理服務(wù)器

在開(kāi)發(fā)環(huán)境下,可以在本地啟動(dòng)一個(gè)代理服務(wù)器,實(shí)現(xiàn)跨域訪問(wèn)。在下面的例子中,客戶端可以通過(guò)訪問(wèn)代理服務(wù)器的 /api/data 路由來(lái)獲取目標(biāo)服務(wù)器上的數(shù)據(jù)。

    // Node.js 代理服務(wù)器
const express = require('express');
const axios = require('axios');
const app = express();
const port = 3000;

app.use(express.json());

app.get('/api/data', async (req, res) => {
  try {
    const response = await axios.get('https://目標(biāo)服務(wù)器的URL/data');
    res.json(response.data);
  } catch (error) {
    res.status(500).json({ error: 'Failed to fetch data from the target server' });
  }
});

app.listen(port, () => {
  console.log(`Proxy server is running on http://localhost:${port}`);
});

Axios 跨域代碼實(shí)例

假設(shè)存在一個(gè)需要跨域訪問(wèn)的 API:

  
axios.get('http://cross-domain-api.com/users')

可以在本地 3000 端口啟動(dòng)一個(gè) Express 代理服務(wù)器:

    const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

app.use('/api', createProxyMiddleware({ 
  target: 'http://cross-domain-api.com', // 跨域目標(biāo)接口
  changeOrigin: true 
}))

app.listen(3000);

然后修改 axios 請(qǐng)求地址,指向代理服務(wù)器即可:

axios.get('http://localhost:3000/api/users')
## 提示與注意事項(xiàng)
  • 選擇跨域解決方案時(shí),考慮到項(xiàng)目的復(fù)雜性和需求,選擇最合適的方法。
  • JSONP 只支持 GET 請(qǐng)求,不適用于所有場(chǎng)景。
  • CORS 需要服務(wù)器端的支持,在一些舊版本的瀏覽器中可能不完全支持。

使用 Apifox 調(diào)試后端接口

Apifox = Postman + Swagger + Mock + JMeter,Apifox 支持調(diào)試 http(s)、WebSocket、Socket、gRPC、Dubbo 等協(xié)議的接口,并且集成了 IDEA 插件。在后端人員寫完服務(wù)接口時(shí),測(cè)試階段可以通過(guò) Apifox 來(lái)校驗(yàn)接口的正確性,圖形化界面極大的方便了項(xiàng)目的上線效率。

axios跨域解決方案,軟件測(cè)試,軟件測(cè)試,功能測(cè)試,自動(dòng)化測(cè)試,程序人生,職場(chǎng)和發(fā)展

總結(jié)

Axios 跨域常用的解決方法有 CORS、JSONP、代理等,開(kāi)發(fā)環(huán)境可通過(guò)代理服務(wù)器實(shí)現(xiàn)跨域,CORS 需要服務(wù)端設(shè)置 Access-Control-Allow-Origin 響應(yīng)頭,JSONP 只支持 GET 請(qǐng)求。選擇適合項(xiàng)目需求的解決方案能夠很好地解決跨域問(wèn)題,保障應(yīng)用的正常運(yùn)行。

最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來(lái)總是要有的,這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

axios跨域解決方案,軟件測(cè)試,軟件測(cè)試,功能測(cè)試,自動(dòng)化測(cè)試,程序人生,職場(chǎng)和發(fā)展

這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬(wàn)個(gè)測(cè)試工程師們走過(guò)最艱難的路程,希望也能幫助到你!?

axios跨域解決方案,軟件測(cè)試,軟件測(cè)試,功能測(cè)試,自動(dòng)化測(cè)試,程序人生,職場(chǎng)和發(fā)展文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-860153.html

到了這里,關(guān)于跨域問(wèn)題?無(wú)需擔(dān)心!學(xué)習(xí)如何解決 Axios 的跨域限制的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決Spring Boot前后端分離開(kāi)發(fā)模式中的跨域問(wèn)題

    在實(shí)際開(kāi)發(fā)中,經(jīng)常會(huì)遇到前端Vue應(yīng)用與后端Spring Boot API接口存在跨域訪問(wèn)的問(wèn)題。本篇博客將分享解決Spring Boot前端Vue跨域問(wèn)題的實(shí)戰(zhàn)經(jīng)驗(yàn),幫助開(kāi)發(fā)者快速解決該問(wèn)題。 跨域問(wèn)題是由于瀏覽器的同源策略引起的。同源策略限制了從一個(gè)源加載的文檔或腳本如何與來(lái)自另一

    2024年02月10日
    瀏覽(571)
  • 最新版本chrome瀏覽器出現(xiàn)的跨域問(wèn)題及解決方案

    最新版本chrome瀏覽器出現(xiàn)的跨域問(wèn)題及解決方案

    最近將chrome瀏覽器更新到了最新版本 ,在個(gè)別網(wǎng)站上出現(xiàn)了跨域訪問(wèn)問(wèn)題。 目錄 解決辦法: (1)增加參數(shù)配置代碼 (2)重新打開(kāi)瀏覽器 在桌面快捷方式中右鍵》屬性》快捷方式中的目標(biāo)后面加入以下參數(shù)配置代碼 注意:其中chrome.exe與--disable之間有一個(gè)空格 然后重新打

    2024年02月06日
    瀏覽(97)
  • Spring Security系列教程之解決Spring Security環(huán)境中的跨域問(wèn)題

    Spring Security系列教程之解決Spring Security環(huán)境中的跨域問(wèn)題

    一. 啟用Spring Security 的CORS支持 1. 普通的跨域 方式1:在接口方法上利用@CrossOrigin注解解決跨域問(wèn)題 方式2:通過(guò)實(shí)現(xiàn)WebMvcConfigurer接口來(lái)解決跨域問(wèn)題 二. Spring Security環(huán)境下的跨域問(wèn)題解決 通過(guò)上面的配置,我們已經(jīng)解決了Ajax的跨域請(qǐng)求問(wèn)題,但是這個(gè)案例中也有潛在的威脅

    2024年02月05日
    瀏覽(88)
  • axios解決跨域問(wèn)題

    axios解決跨域問(wèn)題

    Vue3中使用axios訪問(wèn)聚合的天氣API,出現(xiàn)跨域問(wèn)題,需要在前端進(jìn)行一些配置: 首先是修改vue.config.js: 這里有兩個(gè)地方要注意: 1. proxy:{...}必須寫在devServer對(duì)應(yīng)的配置對(duì)象中。如果書寫位置不對(duì),編譯時(shí)會(huì)報(bào)錯(cuò): ERR: Invalid options in vue.config.js: \\\'proxy\\\' is not allowed 2. 注意替換的規(guī)

    2024年02月08日
    瀏覽(30)
  • Vue+axios如何解決跨域

    1、為什么會(huì)產(chǎn)生跨域? ? ? ? ?出于瀏覽器的同源策略限制。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?同源策略(Sameoriginpolicy)是一種約定,是瀏覽器的一種安全機(jī)制,它阻止了 不同域 之間

    2024年02月17日
    瀏覽(87)
  • 解決 Axios 跨域問(wèn)題,輕松實(shí)現(xiàn)接口調(diào)用

    解決 Axios 跨域問(wèn)題,輕松實(shí)現(xiàn)接口調(diào)用

    跨域是指訪問(wèn)另外一個(gè)域的資源,由于瀏覽器的同源策略,默認(rèn)情況下使用 XMLHttpRequest 和 Fetch 請(qǐng)求時(shí)是不允許跨域的。跨域的根本原因是瀏覽器的同源策略,這是由瀏覽器對(duì) JavaScript 施加的安全限制。 跨域請(qǐng)求被阻止 (Cross-Origin Request Blocked) : 這是由瀏覽器實(shí)施的同源策略

    2024年02月05日
    瀏覽(314)
  • axios如何解決跨域的方案

    由于解決跨域需要用到headers屬性,所以在axios形參中需要用對(duì)象形式包裹,同時(shí)api接口也要放在url屬性當(dāng)中, 廢話不多說(shuō),直接上代碼,然后在請(qǐng)求接口 ---- 到瀏覽器的控制臺(tái) — 點(diǎn)擊剛剛請(qǐng)求的接口 ---- 找到Request Headers 下 ----application/octet-stream ,如果有看到這個(gè)屬性代表解

    2024年02月11日
    瀏覽(90)
  • axios的使用與跨域問(wèn)題的解決

    axios的使用與跨域問(wèn)題的解決

    1、axios的作用 Axios 是一個(gè)基于 promise 的 HTTP 庫(kù),可以用在瀏覽器和 node.js 中。 官方網(wǎng)站:http://www.axios-js.com 源碼:https://gitee.com/charlinchenlin/store-pos 特性: 1、從瀏覽器中創(chuàng)建 XMLHttpRequests 2、從 node.js 創(chuàng)建 http 請(qǐng)求 3、支持 Promise API 4、攔截請(qǐng)求和響應(yīng) 5、轉(zhuǎn)換請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)

    2024年02月09日
    瀏覽(16)
  • 關(guān)于vite的跨域問(wèn)題

    vue需要配置自定義代理規(guī)則進(jìn)行跨域訪問(wèn) 官方文檔:https://cn.vitejs.dev/config/server-options.html#server-proxy 在vite.config.ts修改: 發(fā)起請(qǐng)求的地方: 生產(chǎn)環(huán)境配置跨域,還需要編輯nginx的配置文件,在 server 對(duì)象中再添加一個(gè) location 對(duì)象(別忘了上一個(gè)對(duì)象末尾的分號(hào) ; )

    2024年02月04日
    瀏覽(21)
  • 1.vue3+vite開(kāi)發(fā)中axios使用及跨域問(wèn)題解決

    一、跨域問(wèn)題解決 ?1.基于vite+vue3配置時(shí),在vite.congig.js文件server項(xiàng)目中添加 proxy代理 ? 文件名:vite.congig.js 2.axios封裝時(shí)設(shè)置基本路徑baseURL 二、provide/inject 實(shí)現(xiàn)axios 全區(qū)使用 ? 在main.js中provide ? ?app.provide(\\\'axios\\\', axios) ? 在組件內(nèi)獲取 ? import { inject } from \\\'vue\\\' ? const axios = i

    2024年02月12日
    瀏覽(233)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包