加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

前端开拓 | 那些年曾谈起的跨域

发布时间:2019-06-21 21:01:41 所属栏目:建站 来源:Aaron
导读:对付前端开拓来说跨域应该是最不生疏的题目了,无论是开拓进程中照旧在口试进程中都是一个常常碰着的一个题目,在开拓进程中碰着这个题目的话一样平常都是找后端同窗去办理,以至于许多人都忽略了对跨域的熟悉。为什么会导致跨域?碰着跨域又怎么去办理呢?本

main.js

  1. import http from "http";  
  2. import httpProxy from "http-proxy";  
  3. // 新建一个署理 Proxy Server 工具    
  4. const proxy = httpProxy.createProxyServer({});     
  5. // 捕捉非常    
  6. proxy.on('error', function (err, req, res) {    
  7.   res.writeHead(500, {    
  8.     'Content-Type': 'text/plain'    
  9.   });    
  10.   res.end('error');    
  11. });       
  12. // 在每次哀求中,挪用 proxy.web(req, res config) 要领举办哀求分发    
  13. const server = http.createServer((req, res) => {   
  14.   // 在这里可以自界说你的路由分发    
  15.   let host = req.headers.host, ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;    
  16.   switch(host){    
  17.     case 'www.a.com':     
  18.         proxy.web(req, res, { target: 'http://localhost:3000' });    
  19.         break;    
  20.     case 'www.b.com':    
  21.         proxy.web(req, res, { target: 'http://localhost:4000' });    
  22.         break;  
  23.     default:    
  24.         res.writeHead(200, {    
  25.             'Content-Type': 'text/plain'    
  26.         });    
  27.         res.end('Hello Aaron!');    
  28.   }    
  29. });    
  30. server.listen(8080);  

如代码所示,当会见www.a.com的时辰,哀求就被转发到了3000接口上,会见www.b.com时就被转发到了4000这个接口上。这样就简朴的完成了一个反向署理的事变。

在行使vue开拓的时辰不免也会碰着跨域题目,或者你基础就没有碰着,也许你们正甜头于统一个域内里,尚有一种也许就是,后端同窗可能运维同窗已经处理赏罚好有关跨域的相干操纵。可是当在开拓进程中碰着跨域的时辰,什么前端应该有对应的办理步伐。vue-cli是基于Node处事的,以是我们可以操作这个处事来做署理事变,暂且办理开拓中的跨域题目。

build/webpack.config.js

  1. module.exports = {  
  2.     devServer: {  
  3.         historyApiFallback: true,  
  4.         proxy: [{  
  5.             context: '/login',  //  url以/login为开头时启用署理  
  6.             target: 'http://www.a.com:8080',  // 署理跨域方针接口  
  7.             changeOrigin: true,  
  8.             secure: false,  // 当署理某些https处事报错时用  
  9.             cookieDomainRewrite: 'www.b.com'  // 可觉得false,暗示不修改  
  10.         }],  
  11.         noInfo: true  
  12.     }  
  13. }  

在开拓进程中碰着的可以通过这种方法办理,可是达到出产情形时到底行使什么要领照旧必要斟酌的,事实要使处事数据变得越发的安详步崆最好的。

总结

以上讲了许多有关跨域的办理方案,有利也有弊,对付我而言也许越发的倾向于后端粑粑可能运维粑粑去办理跨域题目,事实前端处理赏罚起来事实不是很安详,并且后端可能运维处理赏罚起来也不是那么的贫困。

很感激各人操作这么长时刻来读这篇文章,文章中如有错误请在下方留言,会尽快做出修改。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读