我們有一個靜態網站託管在s3上。
從頁面我們做了一個jquery ajax post到AWS api gateway/lambda函數。
我不確定OPTIONS是如何工作的,但是當我們啓用'chrome allow cross origin plugin'啓用一切正常(我們得到JSON響應)時,
當插件被禁用時,我們得到錯誤「Request header Access-Control-Allow-Origin不允許在預檢響應中使用Access-Control-Allow-Headers「
是否可以在沒有插件的情況下執行POST並獲得成功的響應 我們還在API上啓用了CORS網關。AWS S3靜態站點CORS jquery ajax POST到API網關
這裏是AJAX POST
$.ajax({
type: 'POST',
url: API_URL,
data: JSON.stringify(inputdata),
dataType: 'json',
beforeSend: function(xhr) {
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
xhr.setRequestHeader("Access-Control-Allow-Methods", "OPTIONS,POST");
xhr.setRequestHeader("Access-Control-Allow-Headers", "X-Requested-With,Access-Control-Allow-Headers,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token");
xhr.setRequestHeader("Content-Type", "application/json");
//xhr.setRequestHeader("origin", "http://evil.com/");
},
/*
headers: {
'Access-Control-Allow-Headers':'Access-Control-Allow-Headers,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods' : 'OPTIONS,POST',
'Access-Control-Allow-Credentials' : true,
'Content-Type': 'application/json; charset=utf-8'
},*/
crossDomain: true,
success: function (data) {getdatasuccess(data)},
error: function(data){
console.log("error = "+JSON.stringify(data));
}
});
響應頭時, '允許跨起源插件' 插件啓用
:權威:64j2k6w2dc.execute-api.us-east-1.amazonaws.com
:方法:OPTIONS
:路徑:/ PROD
:方案:HTTPS
接受:/
accept-encoding:gzip,deflate,br
accept-language:zh-CN,en; q = 0.8
access-control-request-headers:access-control-allow-headers,access-control-allow-methods ,訪問控制允許來源,內容類型
訪問控制請求-方法:POST
起源:http://evil.com/
用戶代理:Mozilla的/ 5.0(Windows NT的6.3; Win64平臺; 64)爲AppleWebKit/537.36(KHTML,例如Gecko)鉻/ 61.0.3163.100 Safari瀏覽器/ 537.36
響應頭時「允許跨原點plugin'plugin被禁用
:授權:64j2k6w2dc.execute-api.us- east-1.amazonaws.com
:方法:OPTIONS
:路徑:/ PROD
:方案:HTTPS
接受:/
接受編碼:gzip,放氣,BR
接受語言: en-US,en; q = 0.8
訪問控制請求標題:訪問控制允許標題,訪問控制允許方法,訪問控制允許來源,內容類型
訪問控制請求方法:POST
原始地址:https://s3.amazonaws.com
referer:https://s3.amazonaws.com/mysitetest/htmlpage2.html
user-agent:Mozilla/5.0(Windows NT 6.3; Win64平臺; x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/61.0.3163.100 Safari/537。36
您試圖在您的ajax請求中設置這些標頭會引發更多問題。 –
把他們全部拿出來,但沒有幫助。 – user2324723