什么是同源政策?
最初同源政策是指A网站在客户端设置的cookie,B网站是不能访问的
什么是同源:
同源是指两个页面拥有相同的协议,端口号,域名
为什么会出现同源?
保证用户数据安全,最初同源政策是指A网站在客户端设置的cookie,
B网站是不能访问的,随着互联网发展,同源请求越来越严格
有一项规定就是不能向非同源地址发送Ajax请求,请求就会报错
解决策略
1.使用Jsonp解决同源限制
思路:
用script标签不受服务器同源政策限制,服务器返回函数调用代码(字符串),当客户端加载完成响应内容,响应内容会被当做js代码执行(因为写
在script标签中),客户端要提前准备好函数的定义,注意:src 必须返回js
类型的代码。具体过程记录在下面有道云笔记中
http://note.youdao.com/noteshare?id=6a949c3b47654ef3baa713ac29b8c69f&sub=57276FA465B347DAB28B023133B2DAFE
2.CORS跨域资源共享解决同源限制
不同于jsonp绕过服务器同源政策,这个是允许跨域访问资源请求客户端根
据服务器是否有响应头内容来判断服务器端是否同意这次请求(浏览器自
动完成) Access…可以理解为白名单,这个方法的实现需要在服务器端
(路由)设置两个响应头
http://note.youdao.com/noteshare?id=34bd6b8054d8e59e9bcf77e913c90de0&sub=C360C6252758475881B684279B914C54
3.利用服务器没有同源限制
引入request模块可以实现两个服务器之间的数据请求,我们通过一号服务
器(3000)访问2号服务器(3001)只有一号客户端通过/server访问1号服
务器时才会执行该请求处理函数。
其中该request请求返回三个参数,一个err,一个response(是一个比较复
杂的数据集合,服务器端的响应信息,我们暂不关心),一个body是请求成
功的返回信息(2号服务器返回的数据)
http://note.youdao.com/noteshare?id=34bd6b8054d8e59e9bcf77e913c90de0&sub=C360C6252758475881B684279B914C54