jquery - 球衣后端 jquery AJAX API 调用中的 Cors 策略阻塞
问题描述
我使用 jersey 和 jsp 开发了一个 webapp。所有球衣 API 调用都像在邮递员中一样工作,但是当我在 jsp 中进行 ajax 调用时,它得到一个错误,如下所示
我在我的 CORSFilter.java 的后端添加了 cors 过滤器
package com.telusko.demorest.Controllers;
import java.io.IOException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.ext.Provider;
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext request,
ContainerResponseContext response) throws IOException {
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Headers",
"origin, content-type, accept, authorization");
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
System.out.println("jhjhjhbjh");
}
}
这是我的前端 Ajax 调用
var $url="http://localhost:8080/demorest/webapi/aliens/alien/103";
$.ajax({
url: $url,
contentType: 'application/json',
headers: { 'Access-Control-Allow-Origin': '*' }, //add this line
dataType: 'json',
type: 'GET',
success: function (Data) {return false;
}
这是我的后端方法
@Path("aliens")
public class AlienController {
AlienRepository repo=new AlienRepository();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<AlienModel> getaliens() {
return repo.getAliens();
}
}
并将这些行也添加到 web.xml
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.telusko.demorest.CORSFilter</param-value>
</init-param>
有什么我必须在我的前端实施的任何建议吗?
解决方案
我刚刚意识到我已经使用 ajax 调用在前端添加了一个访问控制标头,所以这就是我删除
headers: { 'Access-Control-Allow-Origin': '*' }
从我的前端ajax调用它完美地工作:)
推荐阅读
- python - ValueError:arange:无法计算长度
- python - 网站不允许网络抓取 - 如何解决?
- html - Google Script onOpen 函数(从第一个链接,显示第二个链接,然后返回第一个链接。)
- python - 识别唯一标识 pandas DataFrame 行的最小列子集
- gitlab - GitLab CI - 如何同步两个单独的跑步者?
- python - 替代 if __name__ == '__main__':
- c++ - wxWidgets 提示动态复选框列表
- flutter - Flutter web 在部署 web 应用程序时使用 singleChildScrollView 显示空白
- c# - 优雅的 Win32 无窗口进程终止
- mysql - 需要 sql 查询来查找层次结构中最低级别的值