Personal Blog

轶哥

轶哥的头像

妄图改变世界的全栈程序员。

Latest Stories

最新文章 · 第 18 页

记录技术实践、产品思考,以及持续探索世界的过程。

Nginx 解决API跨域问题

利用Nginx可以最简单且高效解决跨域问题。

跨域是前后端分离开发中非常常见的问题。这个问题网上已经有非常多的答案,但大部分是编程框架里面添加CORS头。但无论用什么Web框架,现已很难离开Nginx。因此直接在Nginx中处理跨域问题有得天独厚的优势,可以将OPTIONS请求拦截在API服务之前,节约服务器开销。

简单说,跨域分为简单跨域复杂跨域

简单跨域不会发送OPTIONS请求。

复杂跨域会发送一个预检查OPTIONS请求。

复杂跨域的条件是:

  1. 非GET、HEAD、POST请求。
  2. POST请求的Content-Type不是application/x-www-form-urlencoded, multipart/form-data, 或text/plain
  3. 添加了自定义header,例如Token

跨域请求浏览器会在Headers中添加Origin,通常情况下不允许用户修改其值。

Vue SSR( Vue2 + Koa2 + Webpack4)配置指南

正如Vue官方所说,SSR配置适合已经熟悉 Vue, webpack 和 Node.js 开发的开发者阅读。请先移步 ssr.vuejs.org 了解手工进行SSR配置的基本内容。

从头搭建一个服务端渲染的应用是相当复杂的。如果您有SSR需求,对Webpack及Koa不是很熟悉,请直接使用NUXT.js

本文所述内容示例在 Vue SSR Koa2 脚手架https://github.com/yi-ge/Vue-SSR-Koa2-Scaffold 

我们以撰写本文时的最新版:Vue 2,Webpack 4,Koa 2为例。

特别说明
此文描述的是API与WEB同在一个项目的情况下进行的配置,且API、SSR Server、Static均使用了同一个Koa示例,目的是阐述配置方法,所有的报错显示在一个终端,方便调试。

巧用Koa接管“对接微信开发”的工作 - 多用户微信JS-SDK API服务

涉及微信开发的技术人员总会面对一些“对接”工作,每当做好一个产品卖给对方的时候,都需要程序员介入进行一些配置。例如:

  1. 使用“微信JS-SDK”的应用,我们需要添加微信公众号“JS接口安全域名”。

  2. 为了解决微信页面安全提示,我们需要添加微信公众号“业务域名”。

  3. 为了在小程序中使用WebView页面,我们需要添加微信小程序“业务域名”。

以上三种情况都不是简单的将域名填入到微信管理后台,而是需要下载一个txt文件,保存到服务器根目录,能够被微信服务器直接访问,才能正常保存域名。

如果只需要对接一个或几个应用,打开Nginx配置,如下添加:

location /YGCSYilWJs.txt {
    default_type text/html;
    return 200 '78362e6cae6a33ec4609840be35b399b';
}

假如有几十个甚至几百个项目需要接入?。

让我们花20分钟彻底解决这个问题。

进行域名泛解析:*.abc.com -> 服务器,反向代理根目录下.txt结尾的请求。顺便配置一下通配符SSL证书(网上有免费版本)。

MacOS Mojave 10.14 (18A391) Nvidia Web Driver Notice

由于 MacOS Mojave 10.14 (18A391) 版本的 NVIDIA 显卡 WEB 驱动一直没有发布,其中缘由不能说。因此忙里抽闲用PHP迅速的搭建了一个监控平台,并做成多用户版本。

系统每隔15s会自动检测一次列表,如果发现有新版本发布,则会发送邮件及手机短信通知,方便广大N卡用户。

访问地址:https://driver.wyr.me,填入邮箱或手机号即可。

手机短信收取成本费0.5元人民币,源代码开源:https://github.com/yi-ge/mac-nvidia-web-driver-notice

PHP连接数据库进行增删查改-PDO方法-以MySQL为例

  由于PHP6中将默认以PDO方法连接数据库,而PDO方法优点很多,因此此文仅介绍PDO方法连接数据库进行操作。需要注意,从 PHP 5.1 开始附带了 PDO,在 PHP 5.0 中是作为一个 PECL 扩展使用,在生产环境中强烈建议升级到PHP5.4+版本。

PDO操作数据库的主要优点
  • 支持多种数据库(只要提供正确的数据源,其它的数据库操作是一样的)。
  • 开发效率更高,便于移植。
  • 对事务处理支持更好,特别是事务回滚。
  • 更为安全。

ASP.NET 5 MVC 6 Web API 上传图片

  使用ASP.NET 5 MVC 6 编写 Web API的代码和老版本的有很大区别。特别在连接数据库、图片上传下载等问题上非常难处理。主要原因是新版本中很多类的用法产生变更。

  ASP.NET 5 及 EF7(Entity Framework 7)可以跨平台的新特性使得Linux服务器更能大展身手。但随之而来的便是运维难度的加大和编程人员的“再学习”成本。

ASP.NET 5 MVC 6 Web API JSON序化

  ASP.NET 5 MVC 6 Web API (C#)默认支持自动序化XML和JSON格式数据。然而自动序化的JSON数据在很多方面是存在问题的,比如部分符号和JSON字符串数组的问题。

输出符合JavaScript标准的JSON字符串

  目前比较适合正式生产场合的、不容易出现错误的解决方案是自行序化。尽管ASP.NET WEB API已经具备自动序化的能力,但序化出来的内容并不能完全符合JavaScript规范,比如中文不能够很好的进行unicode转换,部分数值未以字符串方式输出(没有引号,或者变成了单引号)。为了避免出现结果差异,我们默认将所有数据都转换为字符串或字符串数组,再由JavaScript自动将数据转换成对应的类型。

  上一页 下一页