我正在使用帶有Java Lambda後端的AWS API網關。 直到使用Angular 4的朋友試圖發出請求之前,所有東西都是桃色的。他弟妹:阻止使用Lambda的CORS AWS(JAVA)
跨來源請求:同源策略不允許讀 在URL的遠程資源(原因:CORS頭 「訪問控制允許來源」缺失)。
我已經通過網關上啓用CORS:
儘管這樣的錯誤仍然存在。我應該修改什麼?
謝謝。
Ian的評論: 我使用輸出/輸入流,所以我的輸出,根據您的意見,我想下面,但仍然沒有成功。有任何想法嗎 ?
private void sendResponse(JSONObject body, int statusCode, OutputStream outputStream)
{
OutputStreamWriter writer;
JSONObject responseJson = new JSONObject();
JSONObject responseHeadersJson = new JSONObject();
responseHeadersJson.put("Access-Control-Allow-Origin","*");
responseHeadersJson.put("Access-Control-Allow-Headers","Content-Type");
responseJson.put("headers",responseHeadersJson);
responseJson.put("statusCode", statusCode);
responseJson.put("body", body.toJSONString());
try {
writer = new OutputStreamWriter(outputStream, "UTF-8");
writer.write(responseJson.toJSONString());
writer.close();
} catch (IOException e) {
System.out.println("Outputstream Error "+e);
}}
你可以驗證標題'Access-Control-Allow-Origin'是否存在,並且完全等於你設置的'*'?我相信你應該使用https://www.getpostman.com/ –
進行測試。也可以在chrome網絡面板中檢查或執行curl請求並查看請求的響應頭。此外,這不是角度特定的這是一個問題,JS在跨瀏覽器的瀏覽器中執行AJAX調用,瀏覽器在任何POST或GET請求之前自動執行OPTIONS請求以獲取標題信息(如果它沒有跨源標題設置然後請求被拒絕。 https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy – shaunhusain