App上的XMLHttpRequest失败

Fab*_*eto 4 cordova parse-platform ionic-framework

我正在尝试使用Ionic框架和Parse.com在我的移动应用程序上运行一个简单的单例示例.代码很简单如下:

Parse.initialize(APP_KEY, JS_KEY);
Parse.User.signUp("my.user", "123456", {}, {
  success: function(user) {
    // Hooray! Let them use the app now.
    console.log('yuhuuu ' + user)
  },
  error: function(user, error) {
    // Show the error message somewhere and let the user try again.
    alert("Error: " + error.code + " " + error.message);
  }
});
Run Code Online (Sandbox Code Playgroud)

当我在浏览器上测试它时,此代码有效,但当我在手机上运行时,我收到错误代码,100并显示以下消息:

在此输入图像描述

我已经尝试过改变我单挑的方式(在对象中使用而不是直接传递用户和密码).还检查了Android应用程序是否具有访问Web资源的适当权限(没关系).

Fab*_*eto 23

在深入挖掘之后,我发现了这个链接,这引起了我注意我问题的根本原因.Cordova(Ionic的底层平台之一)仅限于对local(file://)资源的请求,这使得所有外部请求都失败.

为了覆盖此行为,您需要使用白名单插件并将其设置为允许您所需的api后端.

这可以如下实现.

首先,将插件添加到项目中.

 cordova plugin add https://github.com/apache/cordova-plugin-whitelist.git
Run Code Online (Sandbox Code Playgroud)

然后将后端设置为config.xml文件中的白名单.

<allow-intent href="*://*api.parse.com/*"/>
Run Code Online (Sandbox Code Playgroud)

  • 我在这个问题上花了一整天,让我疯了.正如我即将离开的那一天,我找到你的答案,我在想,哦,好吧,这可能不会起作用,但我会试一试.有效!感谢您抽出时间回答您自己的问题,而不仅仅是删除它或让它无人接听. (4认同)