求求各位大神了,2点多了没解决睡不着啊,
我按照网上用的koa2-cors,get可以访问,post死活访问不了。绝对不是前端设置的问题。我用postman还是我vue的项目访问都报错,有没有哪位好心的大神帮下忙啊
const Koa = require('koa'); //引入koa
const bodyParser = require('koa-bodyparser')
const router = require('koa-router')()
const cors = require('koa2-cors');
const routerList = require('./router')
const app = new Koa(); //new 一个koa事例
app.use(cors({
origin: function (ctx) {
if (ctx.url === '/') {
return ""; // 允许来自所有域名请求
}
return ''; // 这样就能只允许 http://localhost:8080 这个域名的请求了
},
allowMethods: ['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS']
}))
// app.use(async (ctx, next)=>{
// if(ctx.method == "OPTIONS"){
// ctx.set("Access-Control-Allow-Origin", "*");
// ctx.set("Access-Control-Allow-Methods", "OPTIONS, GET, PUT, POST, DELETE");
// ctx.set("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
// }
// await next();
// })
app.use(bodyParser({
enableTypes:['json', 'form', 'text']
}))
routerList.forEach(e=>{
router.get(e.url, e.controller)
})
app.use(router.routes()).use(router.allowedMethods());
app.listen(3001,() => { //监听端口
console.log("success port on 3001") //成功后打印这句话
})
这样看代码 没什么问题,昨天也做了一下这个
代码类似,先前是 get OK的,post不可以,表单提交,幸亏有文件上传,我可以在我指定的文件夹下看到文件上传成功,就是后台服务器不给返回数据,后来好像是 前台post传输过来,后台可以接受,就是没返回 后来记得是改的路由用post配置数据返回
后来记得是改的路由用post配置数据返回 ,这句话是什么意思啊,能不能有代码看看
@爱吃巧克力的狗: you code edit
我已经看到你的错误了
我问你啊,前台用post提交,url中后面会有数据么?
答案是没有,那么你在服务器的时候也就是你上面的代码,路由用的是get 从前端的地址栏里面抓去路径,你可以抓到么? 抓不到!
错误位置:你的代码倒数第6行,router.post OK 就会接收到返回的ctx.request.fields 了
@CSDN-专业IT技术社区: 感谢,那如果我既要用get又要用post那该怎么办
@爱吃巧克力的狗: 我好开心啊,刚学了vue 1个来月,就可以帮人解决问题,我很… 无法言语, 同时想用两种方法,写两种啊,判断过来的是method 为get 或者 post ,服务器是可以 获取到前台发来的method是什么请求的 分别对应处理
@CSDN-专业IT技术社区: 谢谢啦,感觉你学习能力比我强好多啊
@爱吃巧克力的狗: 我想跟同路人加个好友 微信22226565uy 账号倒过来加我,如果愿意的话
@Haisen'Blogs: 请问如何修复呢?
请问 修复了么? 如何修复的? 我也遇到了这个问题。