当前位置: 首页 > Web前端 > HTML

关于跨域陷阱,浏览器状态码是200,其实是跨域

时间:2023-04-02 19:03:29 HTML

backend使用Nginx,更改本地host文件启动本地服务。将aaa.bbbb.com代理到本地IP地址(10.26.36.156)。使用$.ajax调用后端restful接口,要求content-type为application/json格式,要求在请求头中添加一些内容。前端代码:$.ajax({headers:{'Accept':'application/json','Content-Type':'application/json','user-id':'123','ghf-id':'456'},网址:'https://10.26.36.156/aaa/vds/dsg',类型:'PATCH',数据:JSON.stringify(数据),数据类型:'json',成功:函数(响应){},error:function(msg){}})现象后台使用postman访问成功的浏览器网络抓包请求。结果如下,但是代码并没有触发后端的代码断点....这是为什么呢?原因是host文件的配置欺骗了浏览器,做了options请求,但是对于js引擎来说,这里的ip地址和浏览器的域名是不一样的,所以存在跨域,所以是设置为Access-Control-InsideRequest-Headers。解决方法一:不走IP(不写绝对路径),走相对路径。方案二:将IP地址加入白名单(nodejs中是这样的,其他语音应该也有对应的)。借用宁宇跨域踩坑经验