开发过程中印象最深刻的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;
    }
}

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

目录
相关文章
|
8月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
199 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
8月前
|
项目管理
技术方案撰写之道:实用技巧与方法
本文探讨了如何撰写技术方案,强调了考虑方案的相关方、关键指标、目标受众和预期收益的重要性。文章提出了写作框架应清晰、表达生动、具有美感,并指出好的方案应实现共赢、系统规划和显著效益。写技术方案时,需明确问题、深入分析需求、设定合理目标、设立度量标准、专业设计方案、规划执行路径并有效项目管理,确保方案的成功实施和收益。
666 0
|
编解码 前端开发 测试技术
【软件测试】测试&开发的一生之敌-BUG
BUG相比大家都知道,程序运行出错或者与预期不符就是BUG.现在我们来用测试人员的角度来看待BUG。
|
程序员
程序员如何做好代码重构?
代码重构重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。重构不是重写,它们的区别你可以理解为,重构是修复代码,大框架不变。重写是扔掉原来的,重新设计框架。
220 0
程序员如何做好代码重构?
|
设计模式 Serverless 领域建模
实战经验 | 怎样才能提升代码质量?
提升代码质量的三个有效方法:领域建模、设计原则、设计模式。
实战经验 | 怎样才能提升代码质量?
|
缓存 测试技术 UED
那些让我印象深刻的bug--01
之前在测试的时候每次都是输入不同的关键字去搜索,没发现这个问题。因此以后在测试过程中,使用到缓存的接口,要注意避免类似的场景发生,在设计用例的时候也要考虑进去。
那些让我印象深刻的bug--01
|
存储 NoSQL 数据库
印象最深的bug
最恐怖的bug既不是环境问题,也不是并发,服务器崩溃。
159 0
印象最深的bug
|
算法 程序员 测试技术
面对Bug程序员能做点什么
我们程序不可避免的会出现bug,那么我们能做哪些事情,尽可能减少bug的产生
442 0
面对Bug程序员能做点什么
|
移动开发 程序员
我修复的印象最深的一个bug
如果提到程序员,我们绝大多数人可能会说,程序员每天的时间除了开发需求就是在查bug。在我以前,肯定会不以为然,但自从我成为一名程序员之后,我才深有体验,这句话其实说得没错。