美文网首页程序员
前端开发中的跨域小结

前端开发中的跨域小结

作者: Awesome199 | 来源:发表于2018-04-26 11:01 被阅读0次

自己在实际开发中用的跨域方法小结

  • 为什么会跨域:浏览器的安全策略,对仅仅是浏览器自己本事的限制,后台不受影响。

如何解决跨域

  • 粗暴的方式(仅建议debug阶段)

既然是浏览器的安全策略那就禁用浏览器的安全策略得了
首先是先关闭浏览器然后打开终端运行下面的代码,然后你的浏览器就不受跨域限制了

 // 完全退出浏览器

// mac禁用跨域策略    chmod +x [chrome.sh](http://chrome.sh/)

open -a Google\ Chrome --args --disable-web-security --user-data-dir

// window禁用跨域策略

"windows下chrome安装路径" --disable-web-security --user-data-dir

"C:\Users\UserName\AppData\Local\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir

  • 经典的jsonp
    JSONP, 全称 JSON with Padding,是使用 AJAX 实现的请求不同源的跨域。其基本原理:网页通过添加一个 <script> 元素,向服务器请求 JSON 数据,这种做法(src)不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。

缺点也很明显,只支持get

// 当前页面 a.com/a.html
<script type="text/javascript">
//回调函数
function callback(data) {
alert(data.message);
}
</script>
<script type="text/javascript" src="http://b.com/test.js"></script>

// test.js
// 调用callback函数,并以json数据形式作为阐述传递,完成回调
callback({message:"success"});
  • CORS

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

具体细节请参照阮一峰老师的博客 : http://www.ruanyifeng.com/blog/2016/04/cors.html

  • 既然后端不受跨域的影响 那就写个同源的node服务器去代理请求就是了

这样诞生了 proxy等方法

proxyTable: {
     '/api':{  // api省略host
       target: 'http://ap.staging.dns.somegongsi.com:5000', //真正需要请求的地址
       changeOrigin: true,
       pathRewrite: {
         '^/api': '/api'
       }
     },
     '/g3':{ //配置多个字段
       target: 'http://ap.staging.dns.somegongsi.com:5000',
       changeOrigin: true,
       pathRewrite: {
         '^/g3': '/g3'
       }
     }
   },

相关文章

  • 前端开发中的跨域小结

    自己在实际开发中用的跨域方法小结 为什么会跨域:浏览器的安全策略,对仅仅是浏览器自己本事的限制,后台不受影响。 如...

  • 关于跨域的问题

    一、在前端开发过程中,如果准备开发富应用,跨域的问题将会随之而来。 我们先看看什么是跨域呢: 所谓跨域,或者异源,...

  • Webpack 开发服务器代理设置解决跨域问题

    在前端开发过程中,可能会遇到跨域问题,在 webpack 设置中对 devServer 配置代理即可解决跨域问题,...

  • 实现跨域请求的八种方式

    前端开发中我们经常会遇到跨域请求的情况,处理跨域请求方式很多,特整理如下: 浏览器的同源策略 提到跨域不能不先说一...

  • 结合Promise 封装JSONP方法

    jsonp jsonp是一种前端开发中跨域的解决方案。利用了script 标签可以跨域请求的特性。实现步骤: 1....

  • 利用Vue-cli中的proxyTable解决开发环境的跨域问题

    对于前端开发人员来讲,当你在开发环境中与后台开发人员进行数据联调时,总会遇到烦人的跨域问题! 解决跨域的方法有很多...

  • axios发送跨域请求需要注意的问题

    在实际项目中前端使用到vue,后端使用php进行开发。前端使用axios请求请求。 关于跨域 跨域的概念这些就不说...

  • 浏览器跨域的那些事

    整理中 目标: 了解跨域 解决跨域 服务器配置跨域(java, nginx) 前端调试时配置解决跨域 一、什么是跨...

  • js解决跨域问题

    与后台开发联调接口时经常碰到跨域的问题,有两个解决的办法:让后端开发去掉跨域参数;前端自己解决。 前端解决接口联调...

  • 关于设置env等环境变量的思考

    1、如何处理跨域后台处理跨域前端处理跨域浏览器处理跨域 前端本地处理跨域:代理线上跨域的处理方式:Nginx反向代...

网友评论

    本文标题:前端开发中的跨域小结

    本文链接:https://www.haomeiwen.com/subject/jojplftx.html