jQuery ajax跨域请求

出现跨域问题的情况

  • 域名地址的组成:http:// www . google : 8080 / script/jquery.js
      http:// (协议号)
      www (子域名)
      google (主域名)
      8080 (端口号)
      script/jquery.js (请求的地址)
  • 当协议、子域名、主域名、端口号中任意一各不相同时,都算不同的“域”。
  • 不同的域之间相互请求资源,就叫“跨域”。
url1 url2 说明 允许
http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许
http://www.a.com/a/a.js http://www.a.com/b/b.js 同一域名不同文件夹 允许
http://www.a.com:8080/a.js http://www.a.com:9090/a.js 同一域名不同端口号 不允许
http://www.a.com:8080/a.js http://www.a.com:9090/a.js 同一域名不同协议 不允许
http://www.a.com/a.js http://192.168.4.158/b.js 域名与域名对应的ip地址 不允许
http://www.a.com/a.js http://test.a.com/b.js 主域名相同,子域名不同 不允许
http://www.a.com/a.js http://www.b.com/b.js 不同域名 不允许

处理跨域的方法

  • 代理
    这种方式是通过后台(ASP、PHP、JAVA、ASP.NET)获取其他域名下的内容,然后再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
    比如在A(http://www.beijing.com/sever.php)和B(http://www.shanghai.com/sever.php)各有一个服务器,A的后端(http://www.beijing.com/sever.php)直接访问B的服务,然后把获取的响应值返回给前端。也就是A的服务在后台做了一个代理,前端只需要访问A的服务器也就相当与访问了B的服务器。(之前我们前端开发就是用nginx在本地搭代理服务器)

你可能感兴趣的:(jQuery ajax跨域请求)