用koa2
尝试写了一个RESTful api
,但是调试这个接口的时候,发现需要跨域,于是我引入了koa-cors
这个koa
插件,控制台还是提示存在跨域问题,然后我百度一下,说加header
配置项
this.set('Cache-Control','no-cache');
this.set('Access-Control-Allow-Origin','*');
就是上面这个,测试了一下,还是没用,想也想半天了,看不出问题出在哪里,求大神帮忙看下,源码如下
var koa = require('koa');
var router = require('koa-router');
var co = require('co');
var fs = require('fs');
var cors = require('koa-cors');
var app = new koa();
var route = new router();
var filePath = './app/user.json';
var readFromFile = function(){
return new Promise(function(resolve,reject){
fs.readFile(filePath,function(err,data){
if(err){
reject(err)
}
resolve(data)
})
})
}
route.get('/user',co.wrap(function*(ctx,next){
// this.set('Cache-Control','no-cache');
// this.set('Access-Control-Allow-Origin','*');
var user = JSON.parse(yield readFromFile())
ctx.body = JSON.stringify({status:'success',data:user})
// try{
// var user = JSON.parse(yield readFromFile())
// ctx.body = JSON.stringify({status:'success',data:user})
// }catch(err){
// ctx.status = 500;
// ctx.body = JSON.stringify({status:'fail'})
// }
}))
app.use(cors())
app.use(route.routes()).use(route.allowedMethods())
app.listen(3000,function(){
console.log('start in 3000 port ...')
});
你的跨域插件是koa1的,你试试看这个 koa2-cors 。我用这个是没问题的,也不需要再设置请求头。