Cordova应用程序在Android上的所有XMLHttpRequest都得到404

Cordova app is getting 404 for all XMLHttpRequests on Android

本文关键字:XMLHttpRequest 应用程序 Android Cordova      更新时间:2023-09-26

这是人们常见的问题,但StackOverflow上的所有解决方案似乎都集中在安装cordova-plugin-whitelist上,在上添加了一些变体

<access origin="*" />
<allow-intent href="*" />
<allow-navigation href="*" />

config.xml,并添加类似的内容

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *">

到您的index.html文件。我试过所有这些东西,但仍然没有运气。真正令人沮丧的是,我在以前的一个项目中工作过,这些东西确实可以作为解决方案,但在新项目中使用相同的配置是行不通的。

我100%确信请求的URL响应正确。即使当我点击Chrome开发人员检查器中404错误的URL时,它也会返回正确的内容。当你搜索这个问题时,你一遍又一遍地看到的答案中有没有什么可以尝试的?

编辑:

作为对第一条评论的回应,这是javascript代码:

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://example.com/endpoint");
xhr.onload = success_callback;
xhr.onerror = error_callback;
xhr.send(content);

当我在桌面浏览器中加载时,这个完全相同的代码运行良好,404只出现在cordova应用程序中。代码中没有区别,只是我运行cordova build browser和运行cordova build android

有一次我遇到了这种情况。

列出所有已安装的插件:cordova plugin list

我所要做的就是删除插件:cordova plugin remove <PLUGIN_NAME>(在这种情况下cordova插件白名单

然后再次添加:cordova plugin add cordova-plugin-whitelist