Thinkjs 3.0 解决跨域问题

来源:互联网 发布:怎么安装ubuntu双系统 编辑:程序博客网 时间:2024/06/14 07:57

场景

公司要求新开发一个后台系统,合计使用nodejs,奈何express搭建容易,后期开发学习的东西较多上手费劲,本来合计用koa2 经以为大神推荐使用了以koa2为原型开发的国产框架Thinkjs3.0 ,上手确实很简单,文档也很详细.但是前后台分离,产生了跨域问题

问题如下

Failed to load resource: the server responded with a status of 404 (Not Found):9090/#/login:1 XMLHttpRequest cannot load http://172.1.1.14:8360/user/login. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9090' is therefore not allowed access. The response had HTTP status code 404.

解决方式 :
查了众多资料,但是并没有thinkjs3 的跨域问题解决方案,其他版本的解决并不适用3.0的,
从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能.所以从koa2下手.
koa2 的跨域问题可以通过引入koa-cors2来解决

* 解决步骤:*
1.安装koa-cors2 npm install koa-cors –save
koa-cors的配置详情参考官方文档https://www.npmjs.com/package/koa-cors

2.在middleware.js中 引入新的中间件
thinksjs3.0 详细中间件配置方式,请参考官网文档 https://thinkjs.org/zh-cn/doc/3.0/middleware.html

  1. const cors = require(‘koa-cors’);

  2. {
    handle: cors,
    options: {}
    },

    解决方式简不简单,意不意外,我特么研究好几个小时,再次鸣谢我@马哥