什么是同源

如果两个 URL 的 协议、域名、端口号 完全一致,那么这两个 URL 就是同源的。
http://qq.comhttp://www.qq.com 不同源,完全一致才算同源。

什么是跨域

在浏览器同源策略限制下,向不同源(不同协议、不同域名或者不同端口)发送 XHR 请求,浏览器认为该请求不受信任,禁止请求,具体表现为请求后不正常响应。

JSONP 跨域

当无法使用CORS跨域时,如IE,我们就采用其他方式跨域——JSONP。
当前网址创建一个 script 请求另一个网址的 JS,这个 JS 文件会执行一个回调,以一个 callback 参数传给后台,后台会把函数返回给我们并执行。
优点:支持 IE,可以跨域
缺点:

  1. 读不到AJAX那么精确的状态码,只能知道成功或者失败状态;
  2. 只能通过GET请求,不支持POST.

    CORS 跨域

    跨源资源共享 ( CORS 或通俗地译为跨域资源共享)是一种基于 HTTP 牵头的机制,该机制通过允许服务器标示除了它自己以外的其它 origin(域,协议和端口),这样浏览器可以访问加载这些资源。
    用 Access-Control-Allow-Origin 在服务端标记,符合要求的网址就可以进行 CORS 跨域。
    1. response.setHeader('Access-Control-Allow-Origin', 'http://pank.com:9999')