唐山企业网站建设,新蒲建设集团网站,建设网站的建设费用包括什么科目,怎样做cms电影网站赚钱跨域
同源指的是两个URL的协议、域名、端口号一致#xff0c;反之则是跨域。 出现跨域的根本原因#xff1a;浏览器的同源策略不允许非同源的URL之间进行资源的交互。
同源策略限制为以下几种行为#xff1a;
Cookie、LocalStorage和IndexDB无法获取。DOM和JS对象无法获得…跨域
同源指的是两个URL的协议、域名、端口号一致反之则是跨域。 出现跨域的根本原因浏览器的同源策略不允许非同源的URL之间进行资源的交互。
同源策略限制为以下几种行为
Cookie、LocalStorage和IndexDB无法获取。DOM和JS对象无法获得AJAX请求不能发送
1、JSONP
原理
由于浏览器收同源策略的限制网页无法通过Ajax请求非同源的接口数据但是script标签不受浏览器同源策略的影响可以通过src属性请求非同源js脚本。简而言之JSONP的实现原理就是通过script标签的src属性请求跨域的数据接口并通过函数调用的形式接收跨域接口响应回来的数据。 就是利用script标签可以跨域请求云端的资源。并且把云端的资源请求到本地。把资源作为脚本来运行
实现
bodyscriptfunction success(data) {console.log(JSONP响应回来的数据);console.log(data);}/script//这里返回的是一个函数调用script srchttp://www.liulongbin.top:3006/api/jsonp?callbacksuccessnamesyage18/script
/body弊端
JSONP只支持GET数据请求不支持POST请求
注意事项JSONP和Ajax之间没有任何关系不能把JSONP请求数据的方式叫做Ajax因为JSONP没有用到XMLHttpRequest这个对象。
2、CORS
CORS Cross-Origin Resource Sharing跨域资源共享是一个系统它由一系列传输的HTTP头组成这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应
CORS 实现起来非常方便只需要增加一些 HTTP 头让服务器能声明允许的访问来源
只要后端实现了 CORS就实现了跨域。CORS支持所有类型的HTTP请求但是不兼容某些低版本的浏览器
Access-Control-Allow-Origin 设置为*其实意义不大可以说是形同虚设实际应用中上线前我们会将Access-Control-Allow-Origin 值设为我们目标host
3、Proxy
修改axios中的baseUrl
export const request axios.create({baseURL: /api
})webpack-dev-server
//vue.config.js
devServer: {proxy: {// 如果请求地址以/api打头,就出触发代理机制// http://localhost:8080/api/login - http://localhost:3000/api/login/api: {target: http://localhost:3000, // 我们要代理的真实接口地址pathRewrite: {^/api: // 把/api替换成target 之后用二次封装的地址就可以了},changeOrigin: true // 开启跨域代理}}}proxy工作原理实质上是利用http-proxy-middleware 这个http代理中间件实现请求转发给其他服务器对于为什么只在开发服务器因为技术只是在webpack打包阶段临时生成了node serve来实现nginx的proxy_pass的反向代理