泽西岛-对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-Origin'

Shivkumar Mallesappa

错误截图:

在此处输入图片说明

以下是我的API类,其中为@OPTIONS方法编写了代码。

@OPTIONS 
    public Response OptionsFirstRequst(){
         return Response.ok()
      .header("Access-Control-Allow-Origin", "*")
      .header("Access-Control-Allow-Methods", "*")
      .header("Access-Control-Allow-Headers", "*").build();
    }

我创建了一个名为Response Builder的类,通过该类我为每个请求发送响应。以下是Response Builder类的代码:

    public class ResponseBuilder {

    public int status;
    public HashMap data;
    public String error;

    public static Response ok(int Status_code, HashMap<String, String> data, String Response_error) {
        if (data == null) {
            data = new HashMap();
        }

        ResponseBuilder response = new ResponseBuilder();
        response.status = Status_code;
        response.data = data;
        response.error = Response_error;

        return Response.status(Status_code).entity(response)
                .header("Access-Control-Allow-Origin", "*")
                .header("Access-Control-Allow-Methods", "*")
                .header("Access-Control-Allow-Headers", "*").build();
    }

    public static Response error(int Status_code, HashMap<String, String> data, String Response_error) {
        if (data == null) {
            data = new HashMap();
        }

        ResponseBuilder response = new ResponseBuilder();
        response.status = Status_code;
        response.data = data;
        response.error = Response_error;
        response.data = new HashMap();

        return Response.status(Status_code).entity(response)
                .header("Access-Control-Allow-Origin", "*")
                .header("Access-Control-Allow-Methods", "*")
                .header("Access-Control-Allow-Headers", "*").build();
    }

}

我还有一个Request过滤器,用于验证每个请求(登录除外)的令牌。

我能够登录,生成令牌并将其返回给浏览器。但是登录后,如果我单击个人资料。

我得到的响应为200(如浏览器的dev-tools网络所示),但没有得到任何数据/正确的响应。

我收到以下错误。

对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头。

明子·拉奇莫(Meiko Rachimow)

要检查并添加CORS标头,通常的解决方案是使用javax.ws.rs.container.ContainerResponseFilter下面是一个示例,其中在类中配置了允许的来源ApplicationConfig.accessControlAllowedOrigins

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
import java.io.IOException;

@Provider
public class ResponseCorsFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext, 
            ContainerResponseContext responseContext) throws IOException {

        MultivaluedMap<String, Object> responseHeaders = responseContext.getHeaders();
        String origin = requestContext.getHeaderString("Origin");
        if (null != origin && 
            (ApplicationConfig.accessControlAllowedOrigins.contains(origin) ||
                 ApplicationConfig.accessControlAllowedOrigins.contains("*"))) {

            responseHeaders.putSingle("Access-Control-Allow-Origin", origin);
            responseHeaders.putSingle("Access-Control-Allow-Methods", 
                "GET, POST, OPTIONS, PUT, DELETE, HEAD");

            String reqHead = requestContext.getHeaderString(
                "Access-Control-Request-Headers");

            if (null != reqHead && !reqHead.equals("")) {
                responseHeaders.putSingle("Access-Control-Allow-Headers", reqHead);
            }
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular2-对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

来自分类Dev

对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

来自分类Dev

所请求的资源上没有“ Access-Control-Allow-Origin”标头。或对预检请求的响应未通过访问控制检查

来自分类Dev

将POST更改为OPTIONS +对预检请求的响应未通过访问控制检查:无“ Access-Control-Allow-Origin”标头

来自分类Dev

对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Credentials”标头的值为“”

来自分类Dev

如何解决:对飞行前请求的响应未通过访问控制检查:没有“ Access-Control-Allow-Origin”标头

来自分类Dev

获取请求未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

来自分类Dev

AngularJS发布请求错误否'Access-Control-Allow-Origin'

来自分类Dev

AngularJS发布请求错误否'Access-Control-Allow-Origin'

来自分类Dev

将'access-control-allow-origin'响应添加到Asp.NET中的选项预检请求

来自分类Dev

进行预检请求时是否需要Access-Control-Allow-Origin CORS标头?

来自分类Dev

进行预检请求时是否需要Access-Control-Allow-Origin CORS标头?

来自分类Dev

否'Access-Control-Allow-Origin- http插件logstash

来自分类Dev

XMLRPC请求中的Access-Control-Allow-Origin问题

来自分类Dev

XMLRPC请求中的Access-Control-Allow-Origin问题

来自分类Dev

请求Access_control_allow_origin标志的URL

来自分类Dev

https的CORS Access-Control-Allow-Origin

来自分类Dev

XMLHttpRequest 'Access-Control-Allow-Origin' 错误

来自分类Dev

Instagram API access_token请求和Access-Control-Allow-Origin

来自分类Dev

飞行前响应中的Access-Control-Allow-Origin无法启用跨域访问

来自分类Dev

Flickr API OAuth访问令牌请求和Access-Control-Allow-Origin

来自分类Dev

Flickr API OAuth访问令牌请求和Access-Control-Allow-Origin

来自分类Dev

通过Phonegap访问时Django应用中的Access-Control-Allow-Origin

来自分类Dev

在AJAX请求的请求资源上不存在“ Access-Control-Allow-Origin”标头

来自分类Dev

飞行前响应中Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin

来自分类Dev

尽管有效的CORS配置,“在飞行前响应中Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin”

来自分类Dev

Spring Cloud-Zuul Proxy产生No'Access-Control-Allow-Origin'Ajax响应

来自分类Dev

如何添加到所有响应“ Access-Control-Allow-Origin”标头中?

来自分类Dev

如何在 Ruby 中向 API 响应添加“Access-Control-Allow-Origin”标头

Related 相关文章

  1. 1

    Angular2-对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

  2. 2

    对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

  3. 3

    所请求的资源上没有“ Access-Control-Allow-Origin”标头。或对预检请求的响应未通过访问控制检查

  4. 4

    将POST更改为OPTIONS +对预检请求的响应未通过访问控制检查:无“ Access-Control-Allow-Origin”标头

  5. 5

    对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Credentials”标头的值为“”

  6. 6

    如何解决:对飞行前请求的响应未通过访问控制检查:没有“ Access-Control-Allow-Origin”标头

  7. 7

    获取请求未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

  8. 8

    AngularJS发布请求错误否'Access-Control-Allow-Origin'

  9. 9

    AngularJS发布请求错误否'Access-Control-Allow-Origin'

  10. 10

    将'access-control-allow-origin'响应添加到Asp.NET中的选项预检请求

  11. 11

    进行预检请求时是否需要Access-Control-Allow-Origin CORS标头?

  12. 12

    进行预检请求时是否需要Access-Control-Allow-Origin CORS标头?

  13. 13

    否'Access-Control-Allow-Origin- http插件logstash

  14. 14

    XMLRPC请求中的Access-Control-Allow-Origin问题

  15. 15

    XMLRPC请求中的Access-Control-Allow-Origin问题

  16. 16

    请求Access_control_allow_origin标志的URL

  17. 17

    https的CORS Access-Control-Allow-Origin

  18. 18

    XMLHttpRequest 'Access-Control-Allow-Origin' 错误

  19. 19

    Instagram API access_token请求和Access-Control-Allow-Origin

  20. 20

    飞行前响应中的Access-Control-Allow-Origin无法启用跨域访问

  21. 21

    Flickr API OAuth访问令牌请求和Access-Control-Allow-Origin

  22. 22

    Flickr API OAuth访问令牌请求和Access-Control-Allow-Origin

  23. 23

    通过Phonegap访问时Django应用中的Access-Control-Allow-Origin

  24. 24

    在AJAX请求的请求资源上不存在“ Access-Control-Allow-Origin”标头

  25. 25

    飞行前响应中Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin

  26. 26

    尽管有效的CORS配置,“在飞行前响应中Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin”

  27. 27

    Spring Cloud-Zuul Proxy产生No'Access-Control-Allow-Origin'Ajax响应

  28. 28

    如何添加到所有响应“ Access-Control-Allow-Origin”标头中?

  29. 29

    如何在 Ruby 中向 API 响应添加“Access-Control-Allow-Origin”标头

热门标签

归档