Android 找不到Ionic Post请求文件

Android 找不到Ionic Post请求文件,android,angularjs,cordova,ionic-framework,Android,Angularjs,Cordova,Ionic Framework,我试图通过在Android设备(6.0.1)上运行我的应用程序来发出一个简单的post请求。AFAIK执行此操作时没有CORS问题,但控制台输出: (由于某些原因,APIRL正在替换实际url,实际url是IP地址) 我添加了cordova白名单插件并设置了我的内容安全策略: <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-

我试图通过在Android设备(6.0.1)上运行我的应用程序来发出一个简单的post请求。AFAIK执行此操作时没有CORS问题,但控制台输出:

(由于某些原因,APIRL正在替换实际url,实际url是IP地址)

我添加了cordova白名单插件并设置了我的内容安全策略:

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

您正在使用相对URL-这无法工作,因为您的index.html加载了
文件://
URL

http://:/path/to/resource
作为url参数,它应该按预期工作


在安卓平台上运行应用程序时,如果使用
http
作为协议,恐怕不会有太大问题。但你可以预料iOS会出现问题。根据应用程序的类型,通常最好在服务器上使用SSL加密的网络流量。如果您没有SSL证书,请尝试。

如注释中所述,您需要确保在url前面加上
http://
,否则它将尝试通过
file://
访问文件系统,这就是您收到“未找到文件”错误的原因

确保您以以下格式提出请求:


http://:/path/

当您输入IP地址时,是否将其作为
http://apiurl
?@AlexChance不,我使用的是单引号中的实际ip地址,没有http@AlexChance非常感谢你!这成功了!不确定您是否在模拟器中运行此功能,但您需要为http添加前缀,否则它将尝试通过本地文件系统进行访问。我将作为答案发布,如果您愿意标记并接受,我将不胜感激:)@AlexChance就可以了!
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
$scope.powerPrompt = function() {
    var pwr = alert("Power On");
    $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
    $http({
      method: 'POST',
      url: 'apiurl',
      data: "data to be sent",
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function(response) {
      // handle success things
      alert("success");
    })
    .error(function(data, status, headers, config) {
      // handle error things
    })