接口代理之后出现错误不用代理写全地址正常

来源: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是两种方案,不能串用。

0
4
河畔一角
大家可以添加一下课程群,我就在群里,还希望跟大家交流沟通一下。
2020-11-28
共4条回复

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶构建企业级电商系统,真实服务端数据对接,高实用性

2560 学习 · 1307 问题

查看课程