嗨,我试图打它的做工上的卷曲罚款AWS API网关而不是从JS Brocking工作针对CRO政策。但是,从AWS我已经启用CROS
$.ajax({
url: ApiURL,
type: 'POST',
dataType: 'json',
contentType: "application/json",
data: JSON.stringify(hash),
async: true,
crossDomain: true,
crossOrigin: false,
headers: {
'accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Methods': 'POST'
},
卷曲方法通过AJAX打
$.ajax({
url: stripTrailingSlash(BASE_URL) + '/contact/send',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(body),
async: true,
headers: {
'X-CSRF-Token': csrfToken
},
我的API网关POST结构是这样
我的拉姆达响应我不喜欢这
const response = {
statusCode: statusCode,
headers:{ 'Access-Control-Allow-Origin' : '*' },
body: JSON.stringify({
message: responceMessage,
input: event,
}),
};
callback(null, response);
错误我收到我的浏览器
它工作在卷曲,因为,袅袅不发送OPTIONS请求,但浏览器发送它,只要你是一个CORS请求。
响应OPTIONS请求是什么浏览器使用,以检查是否允许调用API。
当您启用CORS在API网关,它将添加下列头
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Methods': 'POST'
但如果您启用代理请求整合,API网关不再修改,添加标题的响应。因此,它不会工作,除非你的lambda函数本身添加这些头。