Phonegap Cordova Ajax requests 404 (Not Found) Error

JqueryAjaxCordovaHttp Status-Code-404

Jquery Problem Overview


My cordova version is 5.0.0

I am getting a 404 error for the all ajax request made when the app is deployed on the device. On the web browser, it works fine but same app when deployed on a device does not work.

I tried adding following to solve the issue but it hasn't helped.

Config.xml

<access origin="*" />

AndriodManiest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

I also added following in my index.html file but it didn't make any difference either.

<script>
    $.support.cors=true;
</script>

Anyone here has another trick to solve this issue?, Seems to be a quite common issue with phonegap but the fixes above worked in older vesion of the phonegap/cordova but non of them has worked in my case.

Any help would be great.

Jquery Solutions


Solution 1 - Jquery

I had the same issue and had to install the cordova-plugin-whitelist

cordova plugin add cordova-plugin-whitelist

Credit goes to this stackoverflow article - https://stackoverflow.com/questions/29757593/ajax-command-to-request-url-no-longer-working

Solution 2 - Jquery

It should actually add the cordova whitelist plugin :

cordova plugin add cordova-plugin-whitelist

or in your config.xml file :

<plugin name="cordova-plugin-whitelist" spec="1" />

but if you are using the online phonegap build service the syntax is different. You have to add the following line in your config.xml file :

<gap:plugin name="cordova-plugin-whitelist" source="npm" />

and authorize cross domain requests :

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

This is not recommended because a wildcard is used everywhere and everything is permitted. But it is perfect for your tests.

Solution 3 - Jquery

This worked for me. The only difference is in my config.xml I had to put it in an node for it to take effect.

My example below:

<platform name="android">
    <allow-intent href="market:*" />
    <access origin="*" />
    <allow-intent href="*" />
    <allow-navigation href="*" />
</platform>

Solution 4 - Jquery

Phonegap User. Adding this line into the config.xml is the solution for me:

<gap:plugin name="cordova-plugin-whitelist" source="npm" />

Solution 5 - Jquery

My problem was a bit different. I compiled the app using a CI pipeline. So, you still need to do all the above (install the whitelist and add internet permission)

and you also need to find a Visual Studio version that will build the app correctly. Mine doesn't give an error when building, but the resulting app can't make any ajax request

After I downgraded to VS2017, it works

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSahilView Question on Stackoverflow
Solution 1 - JqueryDerek ArendsView Answer on Stackoverflow
Solution 2 - JqueryDamienView Answer on Stackoverflow
Solution 3 - JquerySeanBarberProView Answer on Stackoverflow
Solution 4 - JqueryBruno PIERRE-JUSTINView Answer on Stackoverflow
Solution 5 - JquerygrandiaView Answer on Stackoverflow