如何解决 Flutter 上的 XMLHttpRequest 错误?

Posted

技术标签:

【中文标题】如何解决 Flutter 上的 XMLHttpRequest 错误?【英文标题】:how to solve XMLHttpRequest error on flutter? 【发布时间】:2021-11-11 11:34:00 【问题描述】:

当我运行我的代码时,我收到以下错误,我的应用程序用于从 youtube 下载视频声音。

错误

调试服务监听 ws://127.0.0.1:57539/2eLyP6sNDkg=/ws XMLHttpRequest 错误。 TypeError:无法读取 null 的属性(读取“缩略图”) 在 YoutubeMP3._YoutubeMP3State.new.getInfo (http://localhost:62257/packages/utube_mp3/YoutubeMP3.dart.lib.js:507:40) 在getInfo.throw() 在 http://localhost:62257/dart_sdk.js:40652:38 在 _RootZone.runBinary (http://localhost:62257/dart_sdk.js:40508:58) 在 _FutureListener.thenAwait.handleError (http://localhost:62257/dart_sdk.js:35445:33) 在句柄错误(http://localhost:62257/dart_sdk.js:36033:51) 在 Function._propagateToListeners (http://localhost:62257/dart_sdk.js:36059:17) 在 _Future.new.[_completeError] (http://localhost:62257/dart_sdk.js:35905:23) 在 async._AsyncCallbackEntry.new.callback (http://localhost:62257/dart_sdk.js:35944:31) 在 Object._microtaskLoop (http://localhost:62257/dart_sdk.js:40808:13) 在 _startMicrotaskLoop (http://localhost:62257/dart_sdk.js:40814:13) 在 http://localhost:62257/dart_sdk.js:36279:9

函数获取信息


 //

 Future<void> getInfo() async 
   insertBody(videoURL.text);
   setState(() 
     progress = "";
     status = "Download";
     downloadsuccess = false;
     isDownloading = false;
     isFetching = true;
     fetchSuccess = false;
   );
   try 
     var response = await http.post("https://www.y2mate.com/fr22",
         body: body, headers: headers);

     video = Result.convertResult(response.body);
     setState(() 
       isFetching = false;
       fetchSuccess = true;
     );
    catch (e) 
     print(e.toString());
     setState(() 
       isFetching = true;
       fetchSuccess = false;
     );
   
   print("$video.thumbnail\n$video.audioName\n$video.vid\n$video.id");
 

【问题讨论】:

试试我的回答here希望对你有帮助 谢谢,但还是不行 现在是什么问题 【参考方案1】:

您的错误消息表明 getInfo 正在尝试访问 (null).thumbnail。这可能是您最后的打印声明。如果 Result.convertResult() 因异常而失败并且 video=null,则执行将移至您的 catch() 块,然后尝试打印“video.thumbnail”(不存在)

您可以尝试使用 if (video!=null) 包装您的最后一个打印语句,或者将其移到您的 try 块中。

【讨论】:

我将最后一个打印语句重写为 print("error");我在运行我的程序时得到它,我该怎么做才能得到正确的结果?

以上是关于如何解决 Flutter 上的 XMLHttpRequest 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“flutter build apk”上的此错误

如何在 Linux 上的 Flutter 中打开图形文件选择器?

如何在 Mac os 上的 Android Studio 中给 Flutter SDK Path

如何在 Flutter 中的盒子装饰上的图像上添加不透明覆盖

Flutter Maps:如何更改标记点击上的标记图标

如何解决某些图像上的颤振“Infinity or NaN toInt”