什么是跨域?为什么会出现跨域问题,怎么解决跨域?

  1. 什么是跨域?
    当一个资源去访问另一个不同协议或者不同域名或者同域名不同端口的资源时,就会发出跨域请求,跨域指的是浏览器不能执行其它网站的脚本。是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。所以要注意是浏览器在发送请求时存在协议、域名、端口有不一样的情况。
  2. 为什么会出现跨域问题?
    因为同源策略。所谓的同源策略就是一种安全策略,一种安全功能。它要求浏览器发送的请求中协议、域名、端口号必须与ajax请求路径的协议、域名、端口号一致才可以请求成功,也就是访问到服务器。
    协议、域名、端口号都相同才会满足同源策略,三者中只要有一个不一样就是存在跨域问题。
  3. 跨域的解决方法
  • JSONP
    jsonp只支持get请求
    在这里插入图片描述

  • 后端设置CORS
    只需要让后端程序员设置一下响应头信息添加一个cors,这种方式简单快捷,不需要前端进行处理,而且支持所有请求方式

    // 设置响应头,设置允许跨域(固定写法)
    response.setHeader("Access-Control-Allow-Origin", '*');
  • 设置反向代理服务器
    也就是在前端开启一个服务器,前端页面代码逻辑先跟代理服务器交互,然后再代理服务器与服务端的服务器进行交互,这样是两台服务器进行交互就不会存在跨域问题,因为跨域问题是浏览器向服务器发送请求时才会发生的问题。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值