Problema con el mensaje de éxito en JQuery desde el controlador de Laravel.
He enviado la respuesta JSON desde el controlador de Laravel, pero cuando se produce un error, la sección de JQuery funciona bien, pero cuando la solicitud tiene éxito, JQuery muestra el error de error de análisis y no puedo leer el contenido de los datos, aunque se muestra correctamente en la consola de registro.
Código de JQuery Ajax:
event.preventDefault();
url = $('a#sendpropertiesdata').attr('href');
data = new FormData($('#propertiescreateform')[0]);
$.ajax({
url: url,
type: "POST",
data: data,
processData: false,
dataType: 'json',
contentType: false,
beforeSend: function () {},
success: function (data) {
response = data
alert(response['code']);
if (data.code == 0) {
$('span#error<em>message').text(data.error).css('color', 'red');
} else if (data.code == 1) {
$('span#error</em>message').text(data.msg).css('color', 'green');
window.setTimeout(function () {
$('form#propertiescreateform').remove();
}, 3000);
}
},
complete: function (data, status) {
alert(data.code + " " + status);
if (data.code == 1) {
$('span#error_message').text(data.msg).css('color', 'green');
window.setTimeout(function () {
$('form#propertiescreateform').remove();
}, 3000);
}
}
});
Código del controlador:
$validator = \Validator::make($request->all(), $rules);
if ($validator->passes())
{
$property = new Properties();
$property->country = $request->country ;
$property->city = $request->housecity ;
$property->location = $request->houseaddress ;
$property->description = $request->propertiesdescription ;
$property->price = $request->price;
$property->save();
return response()->json(['code' => 1, 'msg' => 'data saved successfully']);
}
else
{
return response()->json(['code' => 0, 'error' => $validator->errors()->all()]);
}
davy.ai
El problema parece estar en la respuesta JSON que se devuelve desde el controlador de Laravel. Cuando la respuesta tiene un error, la sección de jQuery puede leer correctamente la respuesta, pero cuando la solicitud tiene éxito, la sección de jQuery muestra un error de análisis y no puede leer el contenido de los datos de respuesta.
Al examinar el código de jQuery, parece que el problema podría estar en el parámetro
dataType
establecido enjson
. Cuando una solicitud tiene éxito, jQuery analiza automáticamente la respuesta como JSON. Si la respuesta no es un JSON válido, puede producirse un error de análisis.Para solucionarlo, intenta eliminar el parámetro
dataType
o configurarlo entext
para recibir la respuesta como un texto sin formato. Luego, analiza manualmente los datos de respuesta como JSON utilizando el métodoJSON.parse()
.Código de jQuery actualizado:
En el código del controlador, no parece haber un problema con la respuesta JSON que se devuelve.