【发布时间】:2019-05-29 08:33:06
【问题描述】:
我正在尝试在生产服务器上调试一个问题,其中控制器内部有一个由以下人员注释的方法:
@RequestMapping(value = "/endpoint", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
并且在 javascript 中,对此端点进行了 ajax 调用:
$.ajax({
type: "GET",
async: true,
url: "<%=endpointUrl%>",
dataType: "jsonp",
success: function(data){
console.log("success!");
},
error: function(xhr, options, error){
console.log("fail!");
}
});
但在 chrome 中,我收到警告,指出跨域读取阻止 (CORB) 阻止了跨域响应 ... MIME 类型为 application/json。
我认为 jsonp 用于“绕过”获取请求的同源策略?为什么会被屏蔽?
编辑:附加信息,这些标头设置在端点中:
httpResponse.setHeader("Content-Security-Policy", "default-src 'self' 'unsafe-inline' 'unsafe-eval'");
httpResponse.setHeader("X-Content-Type-Options", "nosniff");
httpResponse.setHeader("X-XSS-Protection", "1");
【问题讨论】:
标签: java spring spring-mvc servlets