簡體   English   中英

Javascript Fetch API Cors:未通過訪問控制檢查

[英]Javascript Fetch API Cors : Doesen't pass access control check

我正在處理一個外部api。 我想發布一些數據,所以我在標頭中設置了令牌以能夠訪問api。

我被告知我的測試來源已列入白名單http://127.0.0.1:8081/

但是我得到以下錯誤。

無法加載https://external-api.com/api/transactions/ad2d7a69-f723-4798-9fa5-a95a76d65324/document :對預檢請求的響應未通過訪問控制檢查:“ Access-Control-當請求的憑據模式為“包括”時,響應中的“允許來源”標頭不得為通配符“ *”。

async submitDocument(transationId, token, base64) {

    const url = host + "/api/transactions/" + transationId + "/document"

    const body = {
        "image": base64,
    }

    let headers = new Headers();
    headers.set('Content-type', 'application/json');
    headers.set('token', token);

    const request = {
        method: 'POST',
        body: JSON.stringify(body),
        mode: 'cors',
        headers: headers,
        credentials: 'include'
    }

    const data = await fetch(url, request);
    const response = await data.json();

    return response;

}

在下一頁的瀏覽器端進行此函數調用。 http://127.0.0.1:8081/

來自服務器的響應

Request URL: https://externalapi.com/api/transactions/f400aaec-3fde-4458-a36e-fe03d550fc00/document
Request Method: OPTIONS
Status Code: 200 
Remote Address: 54.194.37.150:443
Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Headers: content-type, token
Access-Control-Allow-Methods: GET,POST,PUT,DELETE
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 0
Connection: keep-alive
Content-Length: 0
Date: Fri, 22 Jun 2018 15:29:27 GMT
Server: nginx
Vary: Origin
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Access-Control-Request-Headers: content-type,token
Access-Control-Request-Method: POST
Cache-Control: no-cache
Connection: keep-alive
Host: externalapi.com
Origin: http://127.0.0.1:8081
Pragma: no-cache
Referer: http://127.0.0.1:8081/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

請仔細閱讀錯誤消息! 您的域名不得與“ *”列入白名單。

它必須是“ http://127.0.0.1:8081 ”。 您必須要求external-api.com重新檢查它。

在您的請求中,您在令牌頭中設置了憑據,並且請求的來源是:

Origin: http://127.0.0.1:8081

在這種情況下,只有服務器回答以下問題時,請求才會繼續:

Access-Control-Allow-Origin: http://127.0.0.1:8081

否則,該請求將被瀏覽器阻止。有關更多詳細信息,請單擊此處。https : //developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS#Examples_of_access_control_scenarios

特別是“帶憑據的請求”部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM