第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

REST API 調(diào)用從 curl 或 python 成功,但在瀏覽器中失敗

REST API 調(diào)用從 curl 或 python 成功,但在瀏覽器中失敗

HUWWW 2022-10-27 10:40:25
我正在嘗試建立一個(gè)網(wǎng)站,該網(wǎng)站通過 REST API 從公司擁有的 JIRA Board 請(qǐng)求 JIRA 數(shù)據(jù),并在不同的圖表中顯示請(qǐng)求的數(shù)據(jù)。在使用 JavaScript 開發(fā)時(shí),我遇到了CORS 標(biāo)頭“Access-Control-Allow-Origin”缺失錯(cuò)誤,因此無法訪問數(shù)據(jù)。這是一些代碼:var url = myUrl;var auth_string = myJira_user + ":" + myJira_password;var encoded_string = btoa(auth_string);var http_headers = {  "Content-Type": "application/json",  Authorization: "Basic " + encoded_string};var headers = new Headers(http_headers);fetch(url, headers)  .then(response => {    return response.json();  })  .then(data => {    console.log(data);  })  .catch(err => {});這個(gè) JS 腳本在我的瀏覽器控制臺(tái)中拋出了上述錯(cuò)誤,而具有相同參數(shù)的簡(jiǎn)單 python 腳本或 curl 命令可以工作并輸出數(shù)據(jù)。這怎么可能?
查看完整描述

1 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

現(xiàn)代瀏覽器首先通過 HTTP OPTIONS 調(diào)用檢查 API 服務(wù)器上的 CORS 策略。這稱為“預(yù)檢請(qǐng)求”。

CORS:https ://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

HTTP 選項(xiàng):https ://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS

實(shí)際上,瀏覽器首先檢查 API 服務(wù)器是否有權(quán)從源(用戶瀏覽的網(wǎng)站,由域、協(xié)議和端口標(biāo)識(shí))調(diào)用和使用 API。如果 API 服務(wù)器希望從源進(jìn)行調(diào)用,它會(huì)向 OPTIONS 調(diào)用返回成功響應(yīng),然后瀏覽器繼續(xù)進(jìn)行 GET/POST/etc 調(diào)用。但是,如果 API 服務(wù)器無法識(shí)別來自 OPTIONS 調(diào)用的來源,它將返回失敗響應(yīng),并且瀏覽器將不會(huì)繼續(xù) API 調(diào)用,而是生成您觀察到的異常。

CORS + HTTP OPTIONS 是保護(hù) API 訪問和減輕跨站點(diǎn)腳本引起的過多安全和隱私問題的武器庫中的一種機(jī)制。

但就您而言,CORS 不會(huì)影響來自非瀏覽器應(yīng)用程序的調(diào)用。非瀏覽器應(yīng)用程序(例如 CURL 或您可以用 Python、Node 等編寫的任何代碼)不會(huì)進(jìn)行 OPTIONS 調(diào)用,因此 API 服務(wù)器的 CORS 策略不適用。

您可以設(shè)置一個(gè)中間人/代理服務(wù)器來接收來自您的 Web 應(yīng)用程序的 API 請(qǐng)求,調(diào)用目標(biāo) API 服務(wù)器并編組返回響應(yīng),從而繞過 CORS 策略。


查看完整回答
反對(duì) 回復(fù) 2022-10-27
  • 1 回答
  • 0 關(guān)注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)