Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
704 views
in Technique[技术] by (71.8m points)

cordova - XMLHttpRequest failed on App

I'm trying to run a simple singup example on my mobile app using Ionic framework and Parse.com. The code is simple as follows:

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);
  }
});

This code works when I test it on my browser, but when I run it on my cellphone I get an error code 100 with the following message:

enter image description here

I've tried already to change the way I singup (usin the object instead of passing user and password directly). Also checked if the android app has proper permissions for accessing web resources (it's OK).

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

After digging a little deeper I've found this link, which brought to my attention the root cause of my problem. Cordova (one of underlying platforms of Ionic) limits requests to only local (file://) resources, which made all external requests fail.

In order to overwrite this behaviour you need to use the whitelist plugin and set it up to allow you desired api backend.

This can be achieved as follows.

First, add the plugin to the project.

 cordova plugin add https://github.com/apache/cordova-plugin-whitelist.git

Then set up your backend to the whitelist at the config.xml file.

<allow-intent href="*://*api.parse.com/*"/>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...