1、两者原理及比较
原理:
JSONP利用script标签可以跨域的原理。
CORS与AJAX类似,只是跨域版的AJAX(我认为是这样)
比较:
JSONP只支持GET请求;CORS支持所有。
JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。
2、CORS发送几次(面试)
简单请求发送一次。直接发出CORS请求。
非简单请求发送两次。先预检(先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。),再发出CORS请求。
3、!!为啥AJAX不能跨域请求???
一句话就是太不安全了。把Cookie托付给浏览器保存,浏览器要保证你的Cookie不被恶意网站利用。要是可以跨域,电脑上保存了银行账号密码的cookie,访问了恶意网站后,恶意网站发送ajax请求数据,后果不堪设想…