CORS, das Ajax in PhoneGap + jQuery Mobile verwendet, funktioniert nicht auf dem Gerät, sondern in Browsern

Also erstelle ich eine Anwendung mit Phone Gap und jQuery Mobile.

Wenn ich mit Ajax eine JSON-Antwort von einem auf der Whitelist befindlichen Server erhalte, erhalte ich eine Fehlerantwort. In der Konsole wird jedoch nichts angezeigt. Das Seltsame ist, dass das Testen der App in einem Webbrowser einwandfrei funktioniert. Erst wenn ich mein iPhone-Gerät starte, wird ein Strop ausgelöst.

Es ist erwähnenswert, dass die Site, auf der ich meine PHP-Skripte hoste, in Phone Gap in der weißen Liste aufgeführt ist. Ich benutze * im Array (nur für den Fall, dass dies einen Unterschied macht). Ich habe eine jsonp-Problemumgehung für dieses Problem erarbeitet, möchte sie jedoch nicht verwenden. Ich habe das Gefühl, dass es auf dem Gerät möglich sein muss, wenn sie in Browsern funktioniert. Ich hoffe, es ist eine einfache Lösung ...

Hier ist mein einfaches PHP-Skript, das nur einen JSON-String wiedergibt.

<?php
header('Access-Control-Allow-Origin: *');
$arr = array('a' => 1, 'b' => 2);
echo json_encode($arr);
?>

Hier ist der JS

    $('#registerUser').submit(function() {
          $.ajax({
                 url: 'http://www.mydomain.co.uk/path/register/add_user.php',
                 type: 'post',
                 dataType: 'json',
                 crossDomain : true,
                 timeout: 5000,
                 success: function(msg){
                    alert(msg.a);
                 },
                 error: function(){
                    alert('There was an error loading the data.');
                 }
                 });
          });
    });

Bearbeiten: Ich habe dieses js auch auf der Seite ... Es wird empfohlen, dies in den jquery-Handydokumenten zu verwenden, wenn Phone Gap verwendet wird

        <script>
        $( document ).on( "mobileinit", function() {

            $.mobile.allowCrossDomainPages = true;
            $.support.cors = true;
        });

        </script>

Und die Form - ich glaube nicht, dass das notwendig ist ...

           <form id='registerUser' action="" method="POST">
                <div data-role="fieldcontain">
                    <label for="name">Name:</label>
                    <input type="text" name="name" id="name" value=""  />
                    <label for="name">Email:</label>
                    <input type="text" name="email" id="email" value=""  />
                    <label for="name">Password:</label>
                    <input type="password" name="password1" id="password1" value=""  />
                    <label for="name">Re-enter password:</label>
                    <input type="password" name="password2" id="password2" value=""  />
                    <br>
                    <button type="submit" aria-disabled="false">Submit</button>
                </div>
            </form>

Vielen Dank für die Hilfe im Voraus!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage