Bạn cần phải bao gồm hai căn cứ để CORS làm việc vui vẻ (ví dụ với swaggerdoc/chrome)
Đối với mỗi con đường bạn đang xử lý:
- Có một phản ứng chỉ định tuỳ chọn phương pháp nào bạn xử lý
- Tiêu đề 'Access-Control-Allow-Origin' được trả lại theo phương thức thực tế của bạn, gọi
Tôi hiện đã tìm thấy giải pháp đơn giản nhất là: 1. Có phần OPTIONS xử lý bởi API GW nhạo báng 2. Tiêu đề bổ sung vào phản hồi không có chế giễu bởi API GW
Vì vậy, nếu bạn đang hỗ trợ một con đường "/ fred" với GET và POST:
"/fred" {
"options": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/Empty"
},
"headers": {
"Access-Control-Allow-Origin": {
"type": "string"
},
"Access-Control-Allow-Methods": {
"type": "string"
},
"Access-Control-Allow-Headers": {
"type": "string"
}
}
}
},
"x-amazon-apigateway-integration": {
"responses": {
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Access-Control-Allow-Methods": "'GET,POST,OPTIONS'",
"method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'",
"method.response.header.Access-Control-Allow-Origin": "'*'"
}
}
},
"requestTemplates": {
"application/json": "{\"statusCode\": 200}"
},
"passthroughBehavior": "when_no_match",
"type": "mock"
}
}
Sau đó, trong xử lý thực tế của bạn, bạn cần phải đảm bảo bạn có 'Access-Control-Allow-Origin' tiêu đề
"post": {
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/myrecord"
},
"headers": {
"Access-Control-Allow-Origin": {
"type": "string"
}
},
.....
"x-amazon-apigateway-integration": {
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Access-Control-Allow-Origin": "'*'"
},
"responseTemplates": {
"application/json": " ......"
}
}
.....
Lưu ý rằng bạn cần phải trả lại tiêu đề này trên báo xử lý lỗi vv cũng
chỉ để xác nhận, mã ở trên phù hợp với bạn nhưng bạn chỉ muốn xác nhận đây là cách tốt nhất để đạt được điều này? – mostafazh