新手入行,接触到一个跨域的问题,求大佬帮我看看!

跨域问题

image.png

题目来源及自己的思路

我使用的是vue-cli3.0版本,创建vue.config.js代理服务器
我这样发请求,为什么就跨域了呢?
而且我在min.js设置了
image.png
!!
image.png
发请求是这样的
image.png
现在是这个样子
image.png
后来我发现一个问题,请求可以发出去,但是传字段过去就会报错
image.png
我去问了后台,说是要传这个字段,而且还是post请求。
如果我不传字段,就是这种情况
image.png
这个问题是前端的问题还是后端的问题啊,求大佬解答啊,困扰了我一天了!!!!

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
image.png
但是不知道怎么办了???

求大佬指点指点~~

阅读 2.6k
3 个回答

str呢 请求target应该用str替换掉了 是不是请求方式写错了
"/api": {

target: "https://www.ele.me",
ws: true,
changeOrigin: true,
pathRewrite: {
    "^/api": "/"
}

},
请求地址
/api/bgs/poi/search_poi_nearby?geohash=wtw3sjq6n6um&keyword=%E5%AE%89%E4%BA%AD&latitude=31.23037&limit=20&longitude=121.473701&type=nearby

试着换个其他网站接口请求

pathRewrite: {

"^/str": "/"

}
后面加斜杠
target: "http://api.liankat.cn",
baseURL="/str"
请求地址 写成"/sw/mall/itemDetail/"

既然已经设置了 baseUrl 那么在请求的时候 url 就写接口路径就可以了,代理字符串最好只是代理域名

比如这样:

axios.default.baseUrl = 'http://api.liankat.cn'

proxy: {
    '/str': {
        target: "http://api.liankat.cn",
        changeOrigin: true,
        pathRewrite: {
            "^/str": "/"
        }
    }
}

// 请求的时候
this.axios({
    url: '/str/sw/mall/...'
    ...
})
  1. 接口后端配置一下可跨域 (如果接口是你们的)
  2. 请求数据类型设置成jsonp试试 (如果是别人的)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题