接口代理之后出现错误不用代理写全地址正常
来源:4-3 跨域-接口代理

淹死De鱼
2020-11-19
vue.config.js中的配置
module.exports = {
devServer:{
host:‘localhost’,
port:8080,
publicPath:"/",
proxy:{
’/api’:{
target:‘https://www.imooc.com’,
changeOrigin:true,
secure: true,
pathRewrite:{
’/api’:’’
}
}
}
}
}
在app.vue中的
let url = “/api/activity/servicetime”;
jsonp(url,(err,res)=>{
let result = res;
this.data = result;
})
访问之后提示错误
We’re sorry but vuecli doesn’t work properly without JavaScript enabled. Please enable it to continue.(我们很抱歉,但vuecli不能正常工作没有JavaScript启用。请使其继续。)
但是不用代理 直接写接口能访问拿到数据
let url = 'https://www.imooc.com/activity/servicetime’
jsonp(url,()=>{
})
是能直接访问得到数据 这是什么原因,
1回答
-
河畔一角
2020-11-21
你没有理解什么是跨域,以及我们讲jsonp和代理的作用。 跨域是浏览器安全策略的限制,所以我们不能跨域访问其它接口,为了解决这个问题,才引入了jsonp和代理,这是两种方案,不能混用。你上面报错的那个,你用jsonp访问的,它压根就没走代理,jsonp本质上不是一个请求,它怎么会被拦截到呢?所以jsonp必须填完整的url地址,它用不了代理。代理和jsonp是两种方案,不能串用。
042020-11-28
相似问题