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

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

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

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

你可能感兴趣的:(前端,前端,javascript)