Valider 11821bec rédigé par cerdic's avatar cerdic Validation de marcimat
Parcourir les fichiers

Quand un contexte ajax est invalide (corrompu ou trop long, ou on a vide le...

Quand un contexte ajax est invalide (corrompu ou trop long, ou on a vide le cache sur le disque), renvoyer une erreur 400 bad request
+ cote JS traiter le cas d'erreur, marquer le bloc ajax invalide, et rediriger sans ajax si c'etait la nouvelle url de la page

(cherry picked from commit 2b291c56)
parent ebe3911a
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -199,6 +199,7 @@ function http_status($status) {
		301 => '301 Moved Permanently',
		302 => '302 Found',
		304 => '304 Not Modified',
		400 => '400 Bad Request',
		401 => '401 Unauthorized',
		403 => '403 Forbidden',
		404 => '404 Not Found',
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -149,7 +149,7 @@ function traiter_appels_inclusions_ajax() {
			}
		} else {
			include_spip('inc/headers');
			http_status(403);
			http_status(400);
			$texte = _L('signature ajax bloc incorrecte');
		}
		ajax_retour($texte, false);
+16 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -502,6 +502,20 @@ jQuery.spip.on_ajax_loaded = function(blocfrag,c,href,history) {
	jQuery.spip.updateReaderBuffer();
}

jQuery.spip.on_ajax_failed = function(blocfrag,statusCode,href,history) {
	// marquer le bloc invalide
	jQuery(blocfrag).addClass('invalid');
	// si c'est une erreur 400 on a perdu la signature ajax
	//console.log("AJAX Erreur");
	//console.log(statusCode);
	history = history || (history==null);
	// quelle que soit l'erreur, on redirige si c'était la nouvelle URL principale de la page
	if (history) {
		//console.log("On redirige : " + href);
		window.location.href = href;
	}
}

jQuery.spip.stateId=0;
jQuery.spip.setHistoryState = function(blocfrag){
	if (!window.history.replaceState) return;
@@ -595,8 +609,9 @@ jQuery.spip.loadAjax = function(blocfrag,url, href, options){
				if (options.callback && typeof options.callback == "function")
					options.callback.apply(blocfrag);
			},
			error: function(){
			error: function(e){
				jQuery.spip.preloaded_urls[url]='';
				jQuery.spip.on_ajax_failed(blocfrag,e.status,href,options.history);
			}
		});
	}