一、问题

ajax请求网关的时候,能够请求到对应的路由服务A,并且成功返回,但是在页面的开发者工具中显示的请求是无响应内容

二、背景

本地开了几个项目,分别有网关,eureka集群,服务A,服务B等,在浏览器打开nginx指向页面的时候,出现了跨域问题

三、解决方式

1.方式1:

添加config配置

config:
  gateway:
    globalcors:
      add-to-simple-url-handler-mapping: true
      corsConfigurations:
        '[/**]':
          allowedOrigins:
            - "http://localhost:8080"
          allowedHeaders:
            - "*"
          allowCredentials: true
          maxAge: 360000
          allowedMethods:
            - GET
            - POST
            - DELETE
            - PUT
            - OPTIONS
            - HEAD

2.方式2:

有HttpServletResponse的请求中,添加

public void request(HttpServletResponse response){

httpResponse.setHeader("Access-Control-Allow-Origin", httpServletRequest.getHeader("Origin"));
httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");

}

3.方式3:(本项目使用方式3解决)

直接在接口类中添加@CrossOrigin注解

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐