Error de ajax 403 prohibido
neme
-
Pitet Mensajes publicados 2845 Estado Miembro -
Pitet Mensajes publicados 2845 Estado Miembro -
Bonjour,
Aquí estoy enfrentando un gran problema con mi código, cuando guardo un formulario recibo el mensaje "no se pudo conectar a la base de datos". Cuando reviso en la pestaña de redes de Chrome, veo que mi solicitud AJAX falla con un 403 Forbidden, aunque funciona en otros formularios.
Aquí está mi código JavaScript (no tengo permiso para usar jQuery)
JS
Mi problema está en el dato VIDEO que es un iframe de Vimeo
Aquí está el archivo PHP llamado por AJAX
function createGamme(){
Gracias de antemano por tu ayuda
Aquí estoy enfrentando un gran problema con mi código, cuando guardo un formulario recibo el mensaje "no se pudo conectar a la base de datos". Cuando reviso en la pestaña de redes de Chrome, veo que mi solicitud AJAX falla con un 403 Forbidden, aunque funciona en otros formularios.
Aquí está mi código JavaScript (no tengo permiso para usar jQuery)
JS
Mi problema está en el dato VIDEO que es un iframe de Vimeo
function updateTheGamme(){
if(isGammeFormUpdateValid()){
Ext.Ajax.request({
waitMsg: 'Por favor espera...',
//headers: { 'Content-Type': 'application/json'},
type:'POST',
url: '../gestion_des_produits/database.php',
params: {
task: "CREATEPRESGamme",
gamme_id : gamme_idgammeFieldUpdate.getValue(),
NOM : NOMgammeFieldUpdate.getValue(),
technologie_id : technologie_idgammeFieldUpdate.getValue(),
ACCROCHE : ACCROCHEgammeFieldUpdate.getValue(),
DESCRIPTION : DESCRIPTIONgammeFieldUpdate.getValue(),
LOGO : LOGOgammeFieldUpdate.getValue(),
PDF : PDFgammeFieldUpdate.getValue(),
PHOTO_PRINCIPALE : PHOTO_PRINCIPALEgammeFieldUpdate.getValue(),
AIDE : AIDEgammeFieldUpdate.getValue(),
VIDEO : VIDEOgammeFieldUpdate.getValue(),
// VIDEO : VIDEOgammeFieldUpdate.getValue().replace(/\//g, '\/'),
LANGUE : LANGUEgammeFieldUpdate.getValue(),
TITRE_HTML : TITRE_HTMLgammeFieldUpdate.getValue(),
DESCRIPTION_HTML : DESCRIPTION_HTMLgammeFieldUpdate.getValue(),
MOTSCLES_HTML : MOTSCLES_HTMLgammeFieldUpdate.getValue(),
URL_HTML : URL_HTMLgammeFieldUpdate.getValue(),
ordre : ordregammeFieldUpdate.getValue(),
DENOMINATION_LANGUE : DENOMINATION_LANGUEgammeFieldUpdate.getValue(),
SCORE : SCOREgammeFieldUpdate.getValue(),
OBJECTIF_SEO : OBJECTIF_SEOgammeFieldUpdate.getValue(),
COMMENTAIRE_SEO : COMMENTAIRE_SEOgammeFieldUpdate.getValue(),
ACTIF : ACTIFgammeFieldUpdate.getValue()
},
success: function(response){
var result=eval(response.responseText);
console.log('result success : '+result);
switch(result){
case 1:
//Ext.MessageBox.alert('Creación OK','La gamme se creó exitosamente.');
//alert(idUpdateFiltre);
GammesDataStore.commitChanges(); GammesDataStore.on('beforeload', function(store){
store.baseParams = store.baseParams || {};
})
GammesDataStoreTotal.reload();
GammesDataStore.reload();
GammeUpdateWindow.hide();
break;
default:
Ext.MessageBox.alert('Advertencia','No se pudo crear la gamme.');
break;
}
},
failure: function(response){
console.log(response);
var result=response.responseText;
Ext.MessageBox.alert('error','no se pudo conectar a la base de datos. inténtalo más tardeaaaa');
}
});
} else {
Ext.MessageBox.alert('Advertencia', '¡Tu formulario no es válido!');
}
} Aquí está el archivo PHP llamado por AJAX
function createGamme(){
if ($_POST['gamme_id'] != '-1') {
// Aquí probablemente deberíamos hacer alguna verificación en la base de datos, para asegurarnos de que no tengamos la misma entrada dos veces, por ejemplo... Y devolveríamos un código de error diferente (ECHO '0' o lo que quieras...) Por ahora pretendamos que la entrada es válida.
$query = "UPDATE gamme SET `gamme_id` = '".addslashes($_POST['gamme_id'])."' , `NOM` = '".addslashes($_POST['NOM'])."' , `technologie_id` = '".addslashes($_POST['technologie_id'])."' , `ACCROCHE` = '".addslashes($_POST['ACCROCHE'])."' , `DESCRIPTION` = '".addslashes($_POST['DESCRIPTION'])."' , `LOGO` = '".addslashes($_POST['LOGO'])."' , `PDF` = '".addslashes($_POST['PDF'])."' , `PHOTO_PRINCIPALE` = '".addslashes($_POST['PHOTO_PRINCIPALE'])."' , `AIDE` = '".addslashes($_POST['AIDE'])."' , `VIDEO` = '' , `LANGUE` = '".addslashes($_POST['LANGUE'])."' , `TITRE_HTML` = '".addslashes($_POST['TITRE_HTML'])."' , `DESCRIPTION_HTML` = '".addslashes($_POST['DESCRIPTION_HTML'])."' , `MOTSCLES_HTML` = '".addslashes($_POST['MOTSCLES_HTML'])."' , `URL_HTML` = '".addslashes($_POST['URL_HTML'])."' , `ordre` = '".addslashes($_POST['ordre'])."' , `DENOMINATION_LANGUE` = '".addslashes($_POST['DENOMINATION_LANGUE'])."' , `SCORE` = '".addslashes($_POST['SCORE'])."' , `OBJECTIF_SEO` = '".addslashes($_POST['OBJECTIF_SEO'])."' , `COMMENTAIRE_SEO` = '".addslashes($_POST['COMMENTAIRE_SEO'])."' , `ACTIF` = '".addslashes($_POST['ACTIF'])."' WHERE gamme_id =".addslashes($_POST['gamme_id']);
echo $query;
die();
$result = mysql_query($query);
//$last_insert_id = 2;
} else {
$NOM = addslashes($_POST['NOM']);
$technologie_id = addslashes($_POST['technologie_id']);
$ACCROCHE = addslashes($_POST['ACCROCHE']);
$DESCRIPTION = addslashes($_POST['DESCRIPTION']);
$LOGO = addslashes($_POST['LOGO']);
$PDF = addslashes($_POST['PDF']);
$PHOTO_PRINCIPALE = addslashes($_POST['PHOTO_PRINCIPALE']);
$AIDE = addslashes($_POST['AIDE']);
$VIDEO = "";
$LANGUE = addslashes($_POST['LANGUE']);
$TITRE_HTML = addslashes($_POST['TITRE_HTML']);
$DESCRIPTION_HTML = addslashes($_POST['DESCRIPTION_HTML']);
$MOTSCLES_HTML = addslashes($_POST['MOTSCLES_HTML']);
$URL_HTML = addslashes($_POST['URL_HTML']);
$ordre = addslashes($_POST['ordre']);
$DENOMINATION_LANGUE = addslashes($_POST['DENOMINATION_LANGUE']);
$SCORE = addslashes($_POST['SCORE']);
$OBJECTIF_SEO = addslashes($_POST['OBJECTIF_SEO']);
$COMMENTAIRE_SEO = addslashes($_POST['COMMENTAIRE_SEO']);
$ACTIF = addslashes($_POST['ACTIF']);
// Aquí probablemente deberíamos hacer alguna verificación en la base de datos, para asegurarnos de que no tengamos la misma entrada dos veces, por ejemplo... Y devolveríamos un código de error diferente (ECHO '0' o lo que quieras...) Por ahora pretendamos que la entrada es válida.
$query = "INSERT INTO gamme (`NOM`, `technologie_id`, `ACCROCHE`, `DESCRIPTION`, `LOGO`, `PDF`, `PHOTO_PRINCIPALE`, `AIDE`, `VIDEO`, `LANGUE`, `TITRE_HTML`, `DESCRIPTION_HTML`, `MOTSCLES_HTML`, `URL_HTML`, `ordre`, `DENOMINATION_LANGUE`, `SCORE`, `OBJECTIF_SEO`, `COMMENTAIRE_SEO`, `ACTIF` ) VALUES ('$NOM' , '$technologie_id' , '$ACCROCHE' , '$DESCRIPTION' , '$LOGO' , '$PDF' , '$PHOTO_PRINCIPALE' , '$AIDE' , '$VIDEO' , '$LANGUE' , '$TITRE_HTML' , '$DESCRIPTION_HTML' , '$MOTSCLES_HTML' , '$URL_HTML' , '$ordre' , '$DENOMINATION_LANGUE' , '$SCORE' , '$OBJECTIF_SEO' , '$COMMENTAIRE_SEO' , '$ACTIF' )";
$result = mysql_query($query);
$last_insert_id = mysql_insert_id();
}
if (isset($last_insert_id)) { echo $last_insert_id; } else { echo '1'; }
} Gracias de antemano por tu ayuda
3 respuestas
-
Hola,
Un error 403 Forbidden indica a menudo un error de permisos en el directorio o archivo del servidor, sin embargo, un problema de permisos sería extraño en tu caso si la solicitud ajax funciona con otros formularios.
¿Estás seguro de que la ruta relativa definida en el parámetro 'url' es correcta en relación con tu página?
¿Tienes errores de PHP en el archivo de registro de tu servidor web?
¡Buen día! -
Gracias por tu respuesta. Mi formulario tiene problemas según los datos que contiene; en resumen, si agrego un iframe de video, se bloquea, de lo contrario funciona, por lo que no es un error de permisos o de URL.
Creo que mi cadena de video debe estar comentando parte de la consulta o cortando mi cadena.
Así es como se presenta mi cadena de video =>
<iframe src="//player.vimeo.com/video/111111111?title=0&byline=0&portrait=0" width="853" height="467" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
No sé cómo hacerlo de otra manera.-
Entonces el error parece provenir de la ejecución de la consulta sql.
Deberías tener un mensaje de error correspondiente a este error sql ya sea en los archivos de registro del servidor o en la pestaña Response de la consulta ajax (en la pestaña Network, haz clic en la consulta ajax y luego en Response).
Dado que estás mostrando tu consulta (echo $query;), esta también debería aparecer en la pestaña Response de la consulta ajax. ¿Puedes mostrárnosla? -
Dado que tengo un error 403, no se me muestra ningún eco en el registro
En Respuesta tengo: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>No tienes permiso para acceder a /administration/gestion_des_produits/database.php
en este servidor.</p>
</body></html> -
-
-
-
-