2***@qq.com
2***@qq.com
  • 发布:2018-12-06 10:47
  • 更新:2019-12-22 09:44
  • 阅读:16160

uni.request不能跨域访问其他网站的内容

分类:uni-app

将uniapp开发的项目运行到手机后,发现uni.request不能跨域访问其他网站的内容,请问需要怎么处理呢?

2018-12-06 10:47 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com - phper大军中的一员

是小程序, 还是 app?

  • 2***@qq.com (作者)

    是app

    2018-12-06 10:59

  • 3***@qq.com

    console.log(data); 查看详情, 如果有, 就是你自己后续处理数据的问题了

    2018-12-06 17:29

2***@qq.com

2***@qq.com (作者)

uni.request({
url: 'https://www.baidu.com/request', //访问其他网站地址的内容就报跨域的错误。
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});

通过uni.request访问其他网站地址的内容就报跨域的错误,怎么解决好呢?

Trust

Trust - 少说废话

跨域访问时,自定义头信息是被严格限制的。
如果需要支持某些自定义头,需要服务端配合设置权限。

直接访问接口,不设置请求自定义头对比一下。

  • 2***@qq.com (作者)

    我现在是没有加自定义头的,我的代码如下:

    uni.request({

    url: 'http://www.haodingqi.com',

    success: (data) => {

    if (data.statusCode == 200) {

    this.htmlString = data.data.content.replace(/\/g, "").replace(/<img/g, "<img style=\"display:none;\"");

    }

    },

    fail: () => {

    console.log('fail');

    }

    })


    但运行到app还是没有效果

    2018-12-06 11:09

  • Trust

    回复 2***@qq.com:请求成功,没有问题。如果依旧有问题,请提供下可以重现问题的项目,以及相关的错误截图等信息。

    2018-12-06 11:15

  • 2***@qq.com (作者)

    回复 Trust:我已上传了项目源码以及截图,麻烦看看跨域怎么处理? 谢谢

    2018-12-06 11:33

2***@qq.com

2***@qq.com (作者)

这是项目源码和跨域报错截图,具体页面是pages\swiperview

Trust

Trust - 少说废话

麻烦开发中仔细定位问题,不要盲目猜测。控制台的错误信息很明确,操作返回结果时不正确。

  • 2***@qq.com (作者)

    因为你们这里要求上传的附件不能超过10M,所以我删了unpackage目录再上传的,对你运行我上传的项目有没有影响???? 我这边的报错是:Access to XMLHttpRequest at 'http://www.haodingqi.com/?' from origin 'http://192.168.1.149:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    2018-12-06 11:47

  • Trust

    回复 2***@qq.com:确认一下 HBuilderX 的版本是否是最新版,另外你这个问题到底是浏览器上报的还是App上报的?

    2018-12-06 11:53

2***@qq.com

2***@qq.com (作者)

代码是这样,报错如截图

  • Trust

    你这是浏览器上报的,为什么一直说是App上?参考这里:https://ask.dcloud.net.cn/article/35232

    2018-12-06 11:54

3***@qq.com

3***@qq.com - phper大军中的一员

ajax 请求地址没有啊..

IKnowU

IKnowU

这个跨域需要在服务端处理,就是在你起请求的地址处理

d2y

d2y - 只是一个渣渣前端

你这个在浏览器端肯定有跨域问题,但是转成 app 就不会有问题
我的解决办法就是在启动 chrome 的时候关闭安全策略就行了 :)

open -a Google\ Chrome --args --disable-web-security --user-data-dir  
仓鼠

仓鼠 - 一个被逼迫写前端的后端码农

兄弟,这个问题后来怎么解决d

v***@163.com

v***@163.com

test
aaaaa

test

ddddddddddddd
  • test

6***@qq.com

6***@qq.com

服务端设置请求头,跟uni没关系

  • 2***@qq.com (作者)

    现在还没有服务端,是直接通过通过HbuilderX运行到手机上的app

    2018-12-06 11:00

该问题目前已经被锁定, 无法添加新回复