使用Middle Server解决浏览器CORS跨域问题

问题产生最近学了Typescript写了一个Obsidian微信读书的插件Obsidian Weread Plugin,在写插件的过程中需要跨域请求r.qq.com来获取微信读书的书摘和想法。 使用axios在vscode中运行api测试的时候是好的,在obsidian中产生了CORS的问题,这是因为Obsidian本质上是一个Electron的app,本质上也是一个浏览器,所以才会出现跨域问题。 关于CORS的文章已经很多了,推荐参考Mozila CORS,作为一个后端开发,CORS 并不陌生,,对于Spring全家桶用户来说,就是几行@CrossOrigin的配置问题,但是这一篇文章提供的是前端视角来解决CORS的思路,也就是说对服务端不可控时如何处理? 解决思路我们都知道CORS本身只是对浏览器才会限制,所以可以跳出来使用代理服务器来解决问题,这里刚开始,我建立了一个Springboot的Web项目专门转发来自Obsidian的请求,将请求转发到r.qq.com,这样能够正常工作,但是也印出来了另外一个问题: 每次使用Weread插件的时候,我都需要把SpringBoot项目启动起来,显然不够优雅。特别是后面插件上架了Obsidian的社区市场之后肯定更不行,你不可能要求用户自己再额外下载一个服务器来运行。 那么是否可以找到一个可以在前端使用的middle server呢? 答案是可以!那就是http-proxy-middleware

obsidian

10款插件让你的Obsidian更加好用

Obsidian 是一款非常优秀的双链笔记软件,用它可以很方便的来管理自己的笔记,打造自己的数字花园(Digital Garden),虽然和Roam等纯粹的Outliner型笔记不太一样,它基于纯文本md文件,且支持文件夹,给了一些用户选择的自由,最重要的是启动速度很快(特别是和Notion相比,虽然是基于Electron的,不知道用了什么黑魔法) 同时Obsidian也是一款非常好用的写作软件,支持Live Preview的模式,类似于Typora的效果,个人感觉体验很好。 Obsidian是以Plugin化的形式设计的,很多核心的功能也都是以Plugin的形式出现的,这给了用户自由定制的空间,当然这也提高了上手的难度,无形中劝退了不少人,但是Plugin的形式会让这个软件生命力得到释放,社区的优秀的插件数量很多,用户可以根据自己的喜好自己定制自己的Obsidian,我想这也是Obsidian最吸引人的地方之一。 下面就介绍10款我平时用的最多的第三方插件,可以让你的Obsidian更加易用。 外观插件

obsidian

在Obsidian中写Hexo Blog

背景Obsidian目前是我的主力笔记软件,Hexo是我的Blog的Github Pages引擎。孟子曰: 鱼,我所欲也;熊掌,亦我所欲也。二者不可得兼。 虽说二者不可兼得,但是程序员思维总是会指导我:必定有一个方案可以解决这个问题,如果没有那那就创造一个。 在没有Obsidian之前我写Blog的流程是直接在VSCode中打开zhaohongxuan.github.io文件夹,然后编辑md文件,提交到Github然后自动生成Github Pages. 在使用Obsidian之后我会现在Obsidian中建立相关的页面,然后编辑完成之后copy到zhaohongxuan.github.io文件夹,提交到github, 这就导致了一个心智负担:每次都得做重复的工作,copy文件,然后提交代码,间接导致了我不想写Blog(逃。 如何才能在愉快的一边在Obsidian里写笔记一边还能无缝发布Blog呢?

obsidian

使用Yt-dlp高效下载Youtube的视频

代理如果没有全局梯子的话,在命令行里就需要使用代理来下载。使用--proxy来指定代理,支持HTTP/HTTPS/SOCKS 等协议。

工具效率

Spring Environment体系分析

Spring Environment 体系 Environment Interface representing the environment in which the current application is running. Models two key aspects of the application environment: profiles and properties. Methods related to property access are exposed via the PropertyResolver superinterface. Environment 继承自PropertyResolver 定义了应用运行环境的两大关键要素: profiles 和properties,其中properties接口通过父类的PropertyResolver 暴露接口.

源码解析

这本书可能改变你的习惯

人的行为总是一再重复。因此卓越不是一时的行为,而是习惯。 ——亚里士多德(Aristotle)|古希腊哲学家、文艺理论家 柯维博士的《高效能人士的七个习惯》让人一看就以为是地摊成功文学的感觉,实际上确实是一本含金量不低的书,对于个人成长有很大的帮助,特别是让我们能够更好的领导自己,领导自己做正确的事,以及正确的做事。 这本书让我能够静下心来思考,从内而外的思考,更多的考虑我自己内心的感受,自己内心的各种想法,但是这本书太高屋建瓴了,我想能够完全做到并实践的人并不多。读完这本书并不能改变你的习惯,他只能帮助你思考自身,知行合一才能让你变得更加有效能,不再让别人影响情绪,反而更能接受改变,秉承着自己的价值标准,最终找到内心的平静。 在这本书中他把人类成熟模式把人分为三个阶段:依赖期,独立期,互赖期。 依赖期:完成一件事情需要依赖他人的帮助,他人对自己负责 独立期:自己一个人完成一件事情,自己对自己负责。 互赖期:意识到很多事情不可能自己一个人完成,开始和他人合作。

散文随笔

技术人如何面向晋升编程?

这一篇文章不谈技术,以一个过来人的身份谈一谈大厂技术打工人的生存问题(逃 ,其实不仅国内大厂有这种问题,诸如Google、Facebook等国外大厂也有同样的问题 ,只要你在这个体系里面生存就一定要遵循这个规则。

散文随笔

你会使用 git zsh alias 吗?

Git 可以说是每个开发者必备的技能了,使用source tree之类的图形工具的同时,最好能修炼一下git命令行技能,在某种程度上可以让你更加高效的操作,也能在你ssh到远程机器上操作的时候能够临阵不慌,同时在工作中也能体会到git + zsh操作的方便之处。

技术随笔

一个基于Git Rebase的高效Workflow

你是否还在经历合并代码的痛苦?你是否经历过刚合并完代码,又提示合并反复多次? 这个时候你可能需要使用git rebase了,我会通过这篇文章来告诉你一个基于rebase的高效git workflow,学习成本很低,但是学会了受益无穷。 如果不想看文章正文可以直接滑到末尾,我总结了整篇文章的重点,直接用就可以了。 为什么要用Git rebase很多公司在使用git的时候没有一套规范,自己想怎么提交就怎么提,rebase和merge乱用,最后导致git log非常的混乱,commit全是各种小补丁,看起来就像狗皮膏药一样。比如下面的gitlog,能够看到代码分支纵横交错,看起来非常的费力:

工具效率

我的Mac上都有什么?

子曰: 工欲善其事必先利其器 从论语的这句话我们能得出「 器 」的重要性, 工具的重要性自然不言而喻,用好一个软件,你的效率可以提升得到巨大的提升,俗话说的好,磨刀不误砍柴工,那么你准备好开始磨你的刀了么? 系统软件MacOS和Windows在使用上有不少差异,本身Mac就有不少令人诟病的缺陷,下面的几款软件可以让你更好的使用这个系统,让你少走弯路。

12345610

本站由 Hank Zhao 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
本站总访问量