Reputation: 37
I have been working on a phonegap app and it was working perfectly fine until today when the Ajax post request would get stuck loading and the success or failure callbacks are not being called but when I try it on the browser it works perfectly fine.
Has anyone came across this problem and if so how did you manage to fix it?
Thank you in advance
EDIT:
This is my first hybrid app and i am not using desktop app. for now I am only targeting iOS and the target version is 3 and I am using build
Upvotes: 1
Views: 3106
Reputation: 2467
its work for me : in path platforms/android update file AndroidManifest.xml :
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Upvotes: 0
Reputation: 1423
For Android users who have this (I know that's not the original question):
I had the same problem, and spent a lot of time flailing unsuccessfully with the various whitelist directives as described above. Actually, my problem was different: my .apk file had not been correctly signed. Bizarrely, my Android phone did not kick it out at the point of trying to install the .apk: it simply failed as soon as I attempted to make an ajax call. I found the problem because Google Play refused to accept the upload.
I'm using Adobe PhoneGap Build to create the .apk: the problem was fixed when I added my Android keystore to the build (and disabled debug, which I don't think was relevant, but I'm not sure).
Upvotes: 1
Reputation: 454
The newer version of the phonegap automatically blocks all the requests made to any server. You need to follow the instructions to make it work.
Add the "Cordova Whitelist Plugin" in your config.xml
<gap:plugin name="cordova-plugin-whitelist" spec="1.1.0" />
Or simply
<plugin name="cordova-plugin-whitelist" spec="1.1.0" />
After that try putting the following in your config.xml
<content src="index.html" />
above mentioned is the path to your HTML file inside the source directory.
<access origin="*" />
will allow you to make request to any of the server using ajax. If you want to restrict your app to just a single domain then use something like this.
<access origin="http://yourdomain.com" />
At the end, put the following intents
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
Upvotes: 3