开发过程中印象最深刻的Bug

本文涉及的产品
.cn 域名,1个 12个月
简介: 开发过程中印象最深刻的Bug
  • 在工作中遇到各种各样的bug。但是参加工作第一天起,第一次所遇到的bug是一个跨域的问题。

对跨域的这个问题,首先需要了解什么是跨域。大体可以分为三类,协议不同,域名不同,端口不同。

浏览器的同源策略是确保浏览器安全的特别重要的一个安全策略,如果没有同源策略:在一个域上加载的脚本不允许访问另一个域上文本属性 不然通过内嵌 iframe 恶意添加 javaScript 脚本就可以轻松获取到用户信息

何为同源:url 是由协议、域名、端口和路径组成 如果两个路径的协议、域名、端口都相同则表示再同一个域上

在浏览器上

理解了跨域原理,在说说日常项目中,解决跨域的方案

1.JSON跨域

 jsonp的原理就是利用

(1) jquery Ajax实现:

 $.ajax({
   url: 'http://localhost:8080/login',
   type: 'get',
   dataType: 'jsonp',  // 请求方式为jsonp
   data: {}
 });

2.Vue跨域处理

  • 利用http-proxy-middleware 代理解决
devServer:{
    proxy:{
       "/api":{
             target:"http://localhost:8080" //数据接口的地址 
             changeOrigin:true,  // 允许跨域 
             secure:false, // 允许运行在https上   
             pathRewrite: { //如果你不想总是传递 /api,可以重写路径
                  '^/api': ''
             }   
        } 
    }
  1. 后端使用cors解决跨域问题,这里采用node + express实现

首先安装 npm install cors -S

然后在app.js直接使用即可

app.use(require('cors')())

4.nginx代理跨域

nginx代理跨域,实质和CORS跨域原理一样,通过配置文件设置请求响应头Access-Control-Allow-Origin…等字段。

通过Nginx配置一个代理服务器域名与aaa相同,端口不同)做跳板机,反向代理访问aaa2接口,并且可以顺便修改cookie中domain信息,方便当前域cookie写入,实现跨域访问

#proxy服务器
server {
    listen       80;
    server_name  www.domain1.com;

    location / {
        proxy_pass   http://aaa.com;  #反向代理
        proxy_cookie_domain www.domain2.com www.domain1.com; #修改cookie里域名
        index  index.html index.htm;

        # 当用webpack-dev-server等中间件代理接口访问nignx时,此时无浏览器参与,故没有同源限制,下面的跨域配置可不启用
        add_header Access-Control-Allow-Origin http://www.domain1.com;  #当前端只跨域不带cookie时,可为*
        add_header Access-Control-Allow-Credentials true;
    }
}

以上就是解决跨域最常用见的方法

目录
相关文章
|
6月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
176 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
编解码 前端开发 测试技术
【软件测试】测试&开发的一生之敌-BUG
BUG相比大家都知道,程序运行出错或者与预期不符就是BUG.现在我们来用测试人员的角度来看待BUG。
|
程序员
程序员如何做好代码重构?
代码重构重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。重构不是重写,它们的区别你可以理解为,重构是修复代码,大框架不变。重写是扔掉原来的,重新设计框架。
213 0
程序员如何做好代码重构?
|
编解码 程序员
程序员的自我修养:论代码规范的重要性
程序员的自我修养:论代码规范的重要性
179 0
程序员的自我修养:论代码规范的重要性
|
缓存 测试技术 UED
那些让我印象深刻的bug--01
之前在测试的时候每次都是输入不同的关键字去搜索,没发现这个问题。因此以后在测试过程中,使用到缓存的接口,要注意避免类似的场景发生,在设计用例的时候也要考虑进去。
那些让我印象深刻的bug--01
|
IDE NoSQL Java
代码重构终极指南!!
我们一直在寻找各种方法来清理代码、降低复杂性和改善功能。而重构为我们指明了前进的方向。
350 0
代码重构终极指南!!
|
安全 Oracle 关系型数据库
我修复印象比较深的bug
Oracle WebLogic T3反序列化漏洞
272 0
我修复印象比较深的bug
|
算法 程序员 测试技术
面对Bug程序员能做点什么
我们程序不可避免的会出现bug,那么我们能做哪些事情,尽可能减少bug的产生
426 0
面对Bug程序员能做点什么
|
移动开发 程序员
我修复的印象最深的一个bug
如果提到程序员,我们绝大多数人可能会说,程序员每天的时间除了开发需求就是在查bug。在我以前,肯定会不以为然,但自从我成为一名程序员之后,我才深有体验,这句话其实说得没错。
下一篇
无影云桌面