![](/img/trans.png)
[英]Why is request preflighted if I add a standard http header when using cors?
[英]Add CORS header to an http request using Ajax
我開發了一個 Restfull 應用程序,我想添加另一個 Web 應用程序來使用它的服務,所以我進行了這個 Ajax 調用:
$.ajax({
type: "Post",
async: false,
url: "ip_adress/Inviter/api/Account/Register",
data: donne,
headers: { "Access-Control-Allow-Origin:": "*"},
success: function (data) {
console.log(data);
var tab = [];
tab["username"] = username;
tab["password"] = pwd;
var isLogged = Login.CheckCredential(tab, username);
return isLogged;
},
error: function (xhr, status, error) {
console.log(xhr);
console.log(status);
console.log(error);
}
});
我得到這個例外:
對象 {readyState: 0, status: 0, statusText: "SyntaxError: Failed to execute 'setRequestHeader' …-Origin: ' is not a valid HTTP header field name."} error DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest' : 'Access-Control-Allow-Origin: ' 不是有效的 HTTP 標頭字段名稱。
所以我需要知道:
在這種情況下如何啟用 CORS?
我該如何修復我的代碼?
你不能這樣授權自己。 這是一個響應頭; 規范中的詳細信息。 您向其發送請求的服務器必須將該標頭發送回,以便讓瀏覽器知道允許您的頁面向該服務器發送 ajax 請求是可以的。 如果您嘗試請求的服務器不允許您的源,則您無法在客戶端代碼中執行任何操作。
不知何故,我重定向到這個問題以獲得我的 Flask 應用程序的解決方案。 由於服務器必須將響應發送回標頭,因此必須在服務器端設置 CORS。 就我而言,我試圖從
到
所以我設置了 cors 策略以允許源在客戶端
headers: { "Access-Control-Allow-Origin:": "*"},
對於服務器端,flask 提供了允許 cors 的庫
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
它實際上解決了這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.