首页 新闻 赞助 找找看

koa2 post跨域报Method Not Allowed 405

0
悬赏园豆:15 [已解决问题] 解决于 2019-04-19 17:49

求求各位大神了,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") //成功后打印这句话
})

爱吃巧克力的狗的主页 爱吃巧克力的狗 | 初学一级 | 园豆:104
提问于:2019-04-14 02:23
< >
分享
最佳答案
1

这样看代码 没什么问题,昨天也做了一下这个
代码类似,先前是 get OK的,post不可以,表单提交,幸亏有文件上传,我可以在我指定的文件夹下看到文件上传成功,就是后台服务器不给返回数据,后来好像是 前台post传输过来,后台可以接受,就是没返回 后来记得是改的路由用post配置数据返回

收获园豆:15
Haisen'Blogs | 菜鸟二级 |园豆:225 | 2019-04-19 15:13

后来记得是改的路由用post配置数据返回 ,这句话是什么意思啊,能不能有代码看看

爱吃巧克力的狗 | 园豆:104 (初学一级) | 2019-04-19 15:25

@爱吃巧克力的狗: you code edit
我已经看到你的错误了
我问你啊,前台用post提交,url中后面会有数据么?
答案是没有,那么你在服务器的时候也就是你上面的代码,路由用的是get 从前端的地址栏里面抓去路径,你可以抓到么? 抓不到!
错误位置:你的代码倒数第6行,router.post OK 就会接收到返回的ctx.request.fields 了

Haisen'Blogs | 园豆:225 (菜鸟二级) | 2019-04-19 17:46

@CSDN-专业IT技术社区: 感谢,那如果我既要用get又要用post那该怎么办

爱吃巧克力的狗 | 园豆:104 (初学一级) | 2019-04-19 17:48

@爱吃巧克力的狗: 我好开心啊,刚学了vue 1个来月,就可以帮人解决问题,我很… 无法言语, 同时想用两种方法,写两种啊,判断过来的是method 为get 或者 post ,服务器是可以 获取到前台发来的method是什么请求的 分别对应处理

Haisen'Blogs | 园豆:225 (菜鸟二级) | 2019-04-19 17:55

@CSDN-专业IT技术社区: 谢谢啦,感觉你学习能力比我强好多啊

爱吃巧克力的狗 | 园豆:104 (初学一级) | 2019-04-19 17:57

@爱吃巧克力的狗: 我想跟同路人加个好友 微信22226565uy 账号倒过来加我,如果愿意的话

Haisen'Blogs | 园豆:225 (菜鸟二级) | 2019-04-19 18:00

@Haisen'Blogs: 请问如何修复呢?

JackChouMine | 园豆:202 (菜鸟二级) | 2021-10-23 16:11
其他回答(1)
0

请问 修复了么? 如何修复的? 我也遇到了这个问题。

JackChouMine | 园豆:202 (菜鸟二级) | 2021-10-23 16:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册