java响应的HTTP状态代码为500,没有“AccessControlAllowOrigin”头
我部署了一个简单的java web服务(比如说/diagnosis)。当我点击URL(/diagnosis)时,我得到了JSON输出。当我试图通过Angular JS访问rest服务(/诊断)时,我得到了:
请求的资源上不存在“Access Control Allow Origin”头。因此,不允许访问源“http://localhost:4201”。响应的HTTP状态代码为500
我的Java代码是:
@GET
@Path("/DiagnosisSortProviderCost")
@Produces(MediaType.APPLICATION_JSON)
public Response DiagnosisSortProviderCost() throws Exception {
// String path_name = "C:\\Users\\526761\\Desktop\\PioDel\\";
JSONArray jsonArr = jsonread.json_extract_provider(path_name);
System.out.println("--");
System.out.println(jsonArr);
Response response = Response.status(200).entity(jsonread.pro_DiagProvCost(jsonArr))
.header("Access-Control-Allow-Origin", "*").build();
return response;
}
我添加了代码来解决CORS过滤器的问题,我甚至用IP和端口替换了*。但我无法解决这个问题
请帮帮我
# 1 楼答案
因为你的地图永远不会工作。它只支持GET方法,如果有不同的http方法,比如选项(对于CORS),它将不提供服务
所有浏览器将首先发送选项,以检测在发送实际请求之前允许使用哪种方法。如果选项不受支持或http方法不受支持,浏览器将阻止它
将其更改为@RequestMapingwith method选项:要映射到的HTTP请求方法,缩小主要映射范围:GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE