一.同源策略
URL 由协议, 域名, 端口 和 路径组成,
如果两个URL 的协议, 域名和端口相同, 则表示他们同源, 反之, 就表示他们是跨域,
浏览器采用同源策略, 禁止页面加载或执行与自身来源不同的域的任何脚本
部分请求不受到同源策略的限制 , 比如:
<script>, <img>, <iframe>, <link> 这些包含 src 属性的标签可以加载跨域资源
同源策略是浏览器提供的一种安全机制, 如果使用异步请求去加载数据则会受到同源策略的限制
二.AJAX 和普通的 HTTP 请求的区别
从本质上讲: AJAX 就是浏览器发出的 HTTP 请求,
1.AJAX 就是浏览器使用 XMLHTTPRequest 对象发出的 HTTP 请求
2.AJAX 请求受到浏览器同源策略限制, 存在跨域问题
3AJAX 在发送复杂请求时, 浏览器会预先发出 OPTIONS 请求预检 (HTTP 自己是不会预检的)
4.AJAX 请求头会多一个 x-requested-with 参数, 值为 XMLHttpRequest
5.AJAX 请求不能再控制器中进行跳转
三. OPTIONS 请求预检
post 请求和 get 请求是简单请求, 其余的请求都是复杂请求(比如:put, delete, trace 等)
当使用 AJAX 发送复杂请求的时候会先发送 OPTIONS 请求预检, 简单请求不会