我正在使用具有Java Lambda后端的AWS API Gateway。
一切都很顺利,直到一个使用Angular 4的朋友试图发起请求。他一直收到以下错误信息:
“跨源请求被阻止:Same Origin Policy不允许读取远程资源的URL(原因:缺少CORS标头'Access-Control-Allow-Origin')。”
我已经通过网关启用了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);
}}