2011-02-11 4 views
1

J'ai créé une application en utilisant jqtouch. J'ai utilisé ajax pour envoyer des données au serveur. quand je le compilerai avec phonegap ou xcode sur Ipad ou iphone. Sera-t-il capable d'envoyer des données au serveur?JQTOUCH avec le téléphone

Je demande ceci parce que je ne sais pas si ajax travaillera sur le domaine croisé ou non dans l'Iphone.

Merci Cordialement

Répondre

2

Maintenant, j'ai testé iphone. C'est pour tout le monde qui veut créer une application iphone avec jqtouch ou javery jquery et html5.

XHR dans l'iPhone ne suit pas même origine Politique.

Cela signifie dans l'iPhone, nous pouvons créer interdomaine ajax demande

Note: Il ne fonctionne que si vous ouvrez le fichier en utilisant le fichier : /// protocole ne pas utiliser le protocole HTTP

0

ici est un exemple pour envoyer des données au serveur en utilisant AJAX (ci-dessous).

Placez un hôte externe dans PhoneGap.plist ou Cordova.plist.

hôtes externes

Item : * 

Juste * si vous avez accès à tous les sites http.

############################# 

<form class="myformid" method="post" > 

//form inputs 
<input type="hidden" id="doSubmit" name="doSubmit" value="Submit"> 

<a href="#" class="submit whiteButton">Submit!</a> 
</form> 



$('#myformid').submit(function() { 

var formdata = $("#myformid").serialize(); 

$.ajax({ 
    type: 'POST', 
    url: http://mydomain.com/myphpfile.php, 
    data: formdata, 
    success: success, 
    dataType: json, 
}); 
}) 
1

pour cela vous devez créer localement l'environnement du serveur Web.

0

Safari Mobile

iPhone Safari Mobile suit CORS sémantique.

Dites, votre page est hébergée sur le domaine www.example.com, et la page souhaite charger des données d'un domaine ou sous-domaine différent, par exemple api.example.com en utilisant ajax.

Ensuite, api.example.com doit être configuré pour envoyer l'en-tête CORS approprié: See, CORS topic in wikipedia

Vous pouvez également utiliser JSONP comme solution de contournement commune. L'inconvénient de JSONP est que votre page ne recevra pas le bon code d'erreur HTTP.

Phonegap

Si vous utilisez avec PhoneGap, vous devez ajouter le nom d'hôte (caractères génériques sont pris en charge) dans ExtenralHosts tableau d'attributs dans Resources/Supporting Files/Cordova.plist.

Desktop page locale

Il est habituel le cas où vous souhaitez déboguer sur un navigateur de bureau.

Pour Desktop, si et seulement si la page réside localement (c'est-à-dire file:///), le comportement dépend du navigateur. Par défaut, Safari (sur Mac et Windows) permet à une page locale d'effectuer un ajax sur n'importe quel hôte.

Avec Chrome, cependant, il nécessite l'en-tête CORS tout comme le cas non local. L'en-tête CORS doit inclure file:/// comme domaine acceptable pour CORS ajax pour fonctionner. JSONP fonctionne également sur Chrome.