h5跨域访问图片_Taro - 本地H5无法访问远程服务器(跨域问题)

本文介绍了在使用Taro框架进行本地H5开发时遇到的跨域问题及其解决方案。通过npm run build:h5将代码部署到远程服务器或者在dev.js中配置代理服务器可以解决这个问题。配置代理后,Taro.request()调用可以成功访问远程接口。
摘要由CSDN通过智能技术生成

Taro - 本地H5无法访问远程服务器(跨域问题)

我们在执行npm run dev:h5之后,其实是在本地创建了一个localhost服务器,当我们代码中使用Taro.request()访问远端服务器接口的(比如请求地址为http://xxx.com),其实是访问报错的(见下图)

报错提示

解决办法1:

npm run build:h5编译后的dist文件夹提交至http://xxx.com访问的目录,设置服务器为当前域名可以访问的,那么就不会报这个错误,这个为正式环境的,本地测试还是不行。

解决办法2:

通过设置代理解决本地请求远端服务器的跨域问题,在config/dev.js做如下配置:

h5: {

devServer: {

host: 'localhost',

port: 10086,

proxy: {

'/index.php/roche': {//接口访问路径

target: 'http://xxx.com', // 服务端域名

changeOrigin: true

}

}

},

}

这样就通过代理的方式访问到了接口了。

注意:Taro.request()中 mode: 'no-cors',

Taro.request({

url: API_BASE_URL,

data: params,

method: method,// OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

header: {

'content-type': 'application/x-www-form-urlencoded', // 默认值

},

mode: 'no-cors',

success: function (res) {

},

fail: function (res) {

}

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值