HarmonyOS 鸿蒙Next previewer 在进行 axios 或者 http 请求无数据返回,模拟器正常

HarmonyOS 鸿蒙Next previewer 在进行 axios 或者 http 请求无数据返回,模拟器正常

环境: M1 、Intel 都出现如下问题

API: API9

问题描述:

  • 点击按钮进行发送请求,经常出现拿不到数据,LOG 控制台也没有数据;
  • 预览器会频发 crashed,点击 OK 后,页面会出现 Disconnected from the engineClick the Refresh button or open Previewer Log to check for details.
  • 也会出现 Loading Failed.Last operation timed out.Click the Refresh button or open Previewer Log to check for details.

猜想:

  • 刚开始以为按钮点击 没有触发,将 getData 中添加日志,发现是可以打印的。
  • 后面发现 res.data为空。

各种尝试:

  • 重启编辑器(DevEco Studio)
  • 重启电脑
  • 删除 entry 目录下的.preview 目录及 build 目录,重新 build 。
  • 重装 DevEco Studio
  • 在本机创建一个基于 Nest.js 的服务,模拟器发送请求,后端有收到请求,而模拟器发送请求,后端没有接收到请求

以上办法都进行了尝试,没有任何效果。

代码:

import axios from "@ohos/axios"

@Entry
@Component
struct Index {
  @State listData:any={}

  getData(){
    console.log('33333');
    axios.get("http://backend-api-01.newbee.ltd/api/v1/index-infos")
      .then(res=>{
        this.listData=res.data;
        console.log(JSON.stringify(res))
      }).catch(err=>{
      console.log(err);
    })
  }

  build() {
    Scroll(){
      Column({space:10}) {
        Text(`${JSON.stringify(this.listData)}`)
        Button("获取数据").onClick(()=>{
          this.getData()
        })
      }.width('100%')
      .height('100%')
    }

  }
}
cke_598.jpg cke_119429.png cke_279.jpg cke_41377.png ```

更多关于HarmonyOS 鸿蒙Next previewer 在进行 axios 或者 http 请求无数据返回,模拟器正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

普遍都有问题的,这个已经出现很久了

更多关于HarmonyOS 鸿蒙Next previewer 在进行 axios 或者 http 请求无数据返回,模拟器正常的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next previewer中,使用axios或http请求无数据返回,但模拟器正常,可能是由于previewer的网络配置或环境限制导致的。以下是一些可能的原因和解决方法:

  1. 网络配置问题:检查previewer的网络配置,确保其能够访问外部网络。如果previewer运行在本地,确保本地网络没有限制。

  2. 权限问题:确认在Manifest.json文件中已经声明了网络访问权限。例如:

    "reqPermissions": [
        {
            "name": "ohos.permission.INTERNET"
        }
    ]
    
  3. 请求地址问题:确保请求的URL在previewer环境中是可访问的。某些本地地址或内网地址可能在previewer中无法解析。

  4. 跨域问题:如果请求的API存在跨域问题,确保服务器端已经配置了正确的CORS策略。

  5. 调试工具:使用开发者工具(如DevEco Studio的日志查看器)查看请求的详细日志,检查是否有错误信息或网络请求失败。

  6. 模拟器与previewer差异:模拟器与previewer的运行环境可能存在差异,特别是在网络配置和资源访问方面。确保在previewer中复现问题时,使用与模拟器相同的配置。

  7. 缓存问题:清除previewer的缓存,重新加载应用,确保没有缓存导致的请求异常。

  8. 版本问题:检查使用的HarmonyOS SDK和previewer版本,确保没有已知的bug或兼容性问题。

如果以上方法无法解决问题,建议检查具体的请求代码和网络环境配置,确保没有遗漏的配置或代码错误。

回到顶部