2010-10-03 4 views
1

Je dois envoyer une requête GET à un autre domaine de préférence en utilisant jQuery. Ce n'est pas le même contournement de la règle d'origine car je n'ai pas besoin d'obtenir de réponse. Par exemple en utilisant JavaScript, je sais que je peux le faire:Envoi d'une requête GET à un autre domaine en utilisant jQuery, réponse http non requise

document.write('<img src="http://somedomain.com/someapp.php?data='+data+'>') 

Y at-il un meilleur moyen d'utiliser jQuery?

Répondre

4

Vous pouvez créer l'élément <img> mais ne rien faire avec elle ... ça va provoquer une immédiate Fetch, entraînant une requête GET:

$('<img src="http://somedomain.com/someapp.php?data='+data+'">'); 
+1

Vous êtes un ninja de grande force et de sagesse. – rook

0

Vous pouvez attacher des balises de script au DOM en utilisant JS.

var scrElem=document.createElement("script"); 
scrElem.type="text/javascript"; //maybe not required 
scrElem.src="http://bla"; 
document.getElementsByTagName("head")[0].appendChild(scrElem); 

Si vous voulez être vraiment bien rangé à ce sujet, vous pouvez aussi donner à l'élément de script un attribut id de sorte que vous pouvez le supprimer quand il a fait son travail.

Alternativement, jQuery getScript enveloppe bien tout cela.

+0

'getScript' ne fonctionnera pas car il peut jeter un erreur la réponse peut ne pas être valide javascript - même s'il n'a pas besoin de la réponse, il essayera toujours de l'analyser. –

+0

bien qu'il semble que OP est probablement en charge à "autre domaine", donc peut concevoir une réponse en conséquence. – spender

0

Spécifiquement, ajoutez-le à l'élément < tête >. Je ne suis pas sûr que cela fonctionne dans IE.

0

Vous pouvez faire comme ceci:

$('selector').append('<img width="0" height="0" src="http://somedomain.com/someapp.php?data=' + encodeURIComponent(data) + '>'); 
2

Je suppose que vous ne vous pouvez pas besoin dans les DOM, donc faire:

var img = new Image(); 
img.src = 'http://somedomain.com/someapp.php...' + ...; 
0

Il n'y a pas besoin d'injecter la <img> dans le DOM.

simplement:

var request=$('<img/>').attr('src','http://somedomain.com/someapp.php?data='+data); 

Cela va créer un nouveau img-élément, similaire à la nouvelle image(). S'il y a un attribut src fourni, l'image sera chargée (la demande a été envoyée)

Mais je pense que ce n'est pas une meilleure façon, c'est une autre façon. C'est la façon de faire la proposition de Martin.

Cependant, il serait bon que la ressource demandée ne produise pas une réponse importante, car la réponse sera quand même chargée.

Questions connexes