一:跨域资源共享CORS
CORS是w3c标准,它允许浏览器向其他服务器发起xmlhttprequest请求。
CORS需要浏览器和服务器共同支持,毕竟xmlhttprequest是浏览器提供的api,浏览器不支持发不了请求。
1.对于一个简单的CORS请求,浏览器会直接在请求头里面添加一个Origin:http://localhost:63342,请求的协议,域名,端口,这个步骤是浏览器自动完成的。
2.外部服务器那边会检查,当前请求origin是否可以访问服务器
Access-Control-Allow-Origin设置了*表示可以是任何域名,当前注视掉了,所以浏览器会抛出一个错误
服务器拒接了这一次请求。
另外cors默认是不发送cookie
里面没有cookie这个选项
如果需要发生cookie,需要另外设置
1,在服务端添加Access-Control-Allow-Credentials:true
2,在xmlhttprequest请求端时候设置xhr.withCredentials:true
这样浏览器发送请求端时候会带上cookie
二JSONP的请求
jsonp是利用了script标签来请求其他服务器的数据。
这个也是需要前后端配合
前端这边我手写了一个
对应返回后的数据
第一张图是请求的是标签script,第二张图是标签里面带来的数据,就是callback参数后面的回调函数包裹着需要的数据。
合起来,其实实际上就是html页面引入了一个script,只不过这个script有些特殊,里面是一个函数调用的方法。
网友评论