ajax 跨域请求解决方法

出于安全考虑,js不可能跨域访问。一个请求是否跨域,看它发送请求的协议、域名、端口是否和页面的协议、域名、端口是否一致。
解决跨域问题可以从三个方面解决:

  1. 浏览器。
  2. 跨域。
  3. xhr请求。

解决方法

  • 关闭浏览器的安全设置。对网站访问的所有浏览器都需要设置,不太现实,一般不采用这种策略。
  • 使用jsonp。原理:把数据封装成一个js代码,返回给浏览器。因为返回的是一个段js代码,所以返回的数据类型就不是xhr。所以能解决跨域的问题。缺点是需要后端代码进行配合。
  • 添加响应的头部信息,Access-Control-Allow-Origin : *Access-Control-Allow-Methods : *。如果请求需要发送json格式的数据需要在响应的头部信息添加Access-Control-Allow-Headers : Content-Type

你可能感兴趣的:(ajax 跨域请求解决方法)