1 同源策略:
(1)协议相同,指http (2)域名相同 (3)端口相同
2 同源策略的目的:
为了保证用户信息的安全。防止恶意的网站盗取数据。
设想这样一个情景:A网站是一家银行,用户登录以后,又去浏览其他的网站B,如果网站B可以读取A网站的Cookie,会发生什么问题?
3 跨域
现代网站html等文件与后台数据库分开存放, 当ajax请求时, 跨域
在本地由Home页面跳转到ShopCar页面, 同源, 没有跨域
4 跨域解决方案
- vue框架的跨域
利用node + webpack + webpack-dev-server代理接口跨域。在开发环境下,由于vue渲染服务和接口代理服务都是webpack-dev-server同一个,所以页面与代理接口之间不再跨域,无须设置headers跨域信息了。
//vue.config.js部分配置:
devServer: {
historyApiFallback: true,
proxy: [{
context: '/login',
target: 'http://www.domain2.com:8080', // 代理跨域目标接口
changeOrigin: true,
secure: false, // 当代理某些https服务报错时用
cookieDomainRewrite: 'www.domain1.com' // 可以为false,表示不修改
}],
noInfo: true
}
2 jsonp 只支持get
3 websocket
4 CORS
前端什么都不用写
//若想发送cookie
axios.defaults.withCredentials = true
//不写, 即默认false. 不发送cookie
axios.defaults.withCredentials = false