我使用以下代码调用 AWS API 网关。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn").click(function(){
var finalJson = {
"entityType": "abc",
"entityId": "123"
};
$.ajax({
type : "POST",
contentType : "application/json",
xApiKey : "api-key"
url : "api-gateway-url",
data : JSON.stringify(finalJson),
dataType : 'json',
timeout : 100000,
success : function(data){
alert('Congrats! You got the response');
console.log(data);
},
error : function(data){
alert('Error');
console.log(data);
}
});
});
});
</script>
</head>
<body>
<h2>API Gateway call</h2>
<button type="button" id="btn">Request data</button>
<p id="demo"></p>
</body>
</html>
API Gateway 有一个 POST 方法,它与 Lambda 函数链接。 我已经在 API gatewaye 中启用了 CORS。 单击“请求数据”按钮后,显示以下错误。
Access to XMLHttpRequest at 'API Gateway URL' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
请帮忙,谢谢:)
最佳答案
我认为这个问题与 this 有关,而不是因为 API 网关。如果您使用 *
配置了 CORS 配置,您应该能够直接从前端调用。
关于javascript - 收到错误来源 'null' 已被 CORS 策略阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69956920/