Pourquoi jQuery.ajax () ajoute un paramètre à l'URL?
J'ai une méthode d'extraction de données qui utilise jQuery.ajax()
pour récupérer des fichiers xml.
/* */data: function() {
/* debug */try {
var url = arguments[0] ;
var type = arguments[1] ;
var scope = arguments[2] ;
var callback = arguments[3] ;
var self = this ;
if(this.cache[url]) {
callback(this.cache[url]) ;
} else if(!this.cache[url]) {
$.ajax({
type: "GET" ,
url: url ,
dataType: type ,
cache: false ,
success: function(data) {
if(type == "text/xml") {
var myJson = AUX.json ;
var jsonString = myJson.build(data,scope,null) ;
var jsonObject = $.parseJSON(jsonString) ;
self.cache[url] = jsonObject ;
callback(url) ;
} else if(type == "json") {
self.cache[url] = data ;
callback(url) ;
}
} ,
error: function() {
throw "Ajax call failed." ;
}
}) ;
}
/* debug */} catch(e) {
/* debug */ alert("- caller: signTutor.data\n- " + e) ;
/* debug */}
} ,
Mon problème est le suivant: jQuery en quelque sorte ajoute un paramètre (?_=1272708280072
) à l'url si il y a échappé (hexadécimal) ou sans échappement de caractères utf-8 à l'extérieur de la plage ASCII -- je crois -- dans le nom de fichier. Tout cela fonctionne bien si le nom de fichier ne contient pas de caractères dans ce domaine.
Type de xml
donc il ne devrait pas être une confusion de genres. Les en-têtes des fichiers xml sont également définies de manière adéquate.
Je peux voir à partir de la console que jQuery renvoie une erreur, mais je ne suis pas sûr de l'endroit où le problème est vraiment.
Probablement d'un problème de nom de fichier de mise en forme, mais je n'ai pas trouver toutes les ressources sur le web comme à l'AJAX nom du fichier de spécifications. Des idées?
Merci pour votre aide!
source d'informationauteur FK82
Vous devez vous connecter pour publier un commentaire.
Ce qu'est un "cache-buster" et est ignoré.
Le paramètre ajouté modifie l'url juste assez pour contourner la plupart des tous les caches qui sont entre vous et la source.
Si l'Url n'a pas été modifié, il est probable que les données seraient servis partir de l'une des caches entre vous et la ressource, y compris votre navigateur, tous les proxys, et peut-être le serveur lui-même.
Vous pouvez trouver beaucoup d'explications sur le net. Voici un.
elle doit être ignorée.
Juste pour faire un test, si vous êtes à l'aide de rails de, ne pas utiliser le
javascript_include_tag
mais passer le JavaScript commeDe ne pas activer le cache-buster et avec qui vous pouvez voir si votre problème est de savoir où vous pensez qu'il est.