• java web----跨域请求解决办法


    同源策略

      ajax访问的地址和浏览器访问的域名地址不一致,就会出现跨域的问题。但是其实请求已经发出,并且服务器已经返回了数据,只是浏览器处于安全考虑,会拦截这个数据。

    解决

    1、使用jsonp(只支持get请求,不支持post请求,不推荐使用)

      修改ajax

      修改后台

     

    2、使用HTTPClient进行转发(会发送两次请求,效率较低)

      第一次请求,通过ajax发送到项目A后台

       再在后台通过HttpClient进行转发,其实就不是跨域问题了,跨域是针对前台发送的请求。

    3、设置响应头允许跨域(推荐)

      很简单,在被访问的项目B接口上添加一个代码,设置一个响应头的参数即可,*表示所有的域名都是允许跨域的,此代码应该放在过滤器中。

       或者使用注解

    @CrossOrigin(value = "http://localhost:8081")
    @ResponseBody
    @RequestMapping("login")
    public JsonResult login()
    

      

    4、使用nginx搭建API网关

      ajax配置如下

      nginx配置如下,由ngnix反向代理到项目B

  • 相关阅读:
    day4笔记
    day3笔记
    day2 python基础 while 循环补充
    day1笔记 初识python,paython基础
    指针-1
    scanf输入与getchar的比较
    [递归]母牛的故事
    安装mysql以及遇到的问题解决
    33.指针
    32.字符串
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/11756255.html
Copyright © 2020-2023  润新知