java - “PUT”方法被 cors 策略阻止 请求的资源上不存在“access-control-allow-origin”标头
问题描述
我正在使用 Angular (10) 应用程序通过 REST api 访问 Java (1.7) 应用程序。一切都按预期工作。有许多工作正常的 GET 和 POST 方法调用。
问题
我添加了一个 PUT 方法。现在,当 Angular 应用程序调用 PUT 方法时,它会收到以下错误:
被 cors 策略阻止的方法 请求的资源上不存在“访问控制允许来源”标头
问题
这适用于 GET 和 POST 方法。我如何让它也适用于 PUT 方法?
更多信息
在 Java 应用程序中,我确实设置了以下内容:
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, HEAD, OPTIONS");
这是 PUT 方法:
@PUT
@Path("/request/{companyId}/{orderNumber}")
@ApiOperation(value="description")
@ApiResponses({
@ApiResponse(code=200, message="Success"),
@ApiResponse(code=404, message="Not Found")
})
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public Response updateSubmittedTrip(@HeaderParam("Authorization") String token, @ApiParam(required = true) TravelRequisitionFormDTO travelRequisitionFormDTOBody, @PathParam("companyId") String companyId, @PathParam("orderNumber") String orderNumber, @Context HttpServletRequest request) {
这是 POST 方法:
@POST
@Path("/request/{companyId}/{orderNumber}")
@ApiOperation(value="description")
@ApiResponses({
@ApiResponse(code=200, message="Success"),
@ApiResponse(code=404, message="Not Found")
})
@Produces({ MediaType.APPLICATION_JSON })
public Response getSubmitTrip(@HeaderParam("Authorization") String token, @ApiParam(required = true) TravelRequisitionFormDTO travelRequisitionFormDTOBody, @PathParam("companyId") String companyId, @PathParam("orderNumber") String orderNumber, @Context HttpServletRequest request) {
网络
更新
我将 PUT 更改为 POST,但仍然出现错误。所以错误不在于 PUT 方法。那么问题一定出在端点上。
我还更改了 Angular 客户端以从另一个地方调用 PUT 方法,并且它没有收到 CORS 错误。所以这对我来说表明问题在于客户端如何调用端点(即客户端问题)。
解决方案
推荐阅读
- kubernetes - 在 minikube 中从 yaml 文件创建部署
- python - For循环和嵌套If语句比较,Python中的简化
- javascript - 如何让背景在图像之间随机播放?
- c# - 使用 C# 从 excel 表中读取复选框控件值
- javascript - 如何使用 forEach 循环 javascript 向下计数
- jquery - 使用 jquery 循环查找带有 DOM 的输入元素的值
- python - 我无法使此代码正常工作,我收到错误“TypeError:”
'需要字符串作为左操作数,而不是列表' - unity3d - Azure 远程渲染错误 - EXEC:致命错误 C1007:“p2”中无法识别标志“-ssa-cfg-jt-”
- python - 如何轻松降级python版本?
- android - 从 firebase 检索数据在特定适配器中返回 null