【问题标题】:success message issue in JQuery from Laravel controller来自 Laravel 控制器的 JQuery 中的成功消息问题
【发布时间】:2022-01-20 05:12:20
【问题描述】:

我已经从 laravel 控制器提交了 json 响应,但是当它给出错误时,JQuery 部分工作正常,但是当请求成功时,JQuery 给出错误,即解析错误,我无法读取数据内容,但它显示了数据在日志控制台中正确。

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) {
        // alert(data.msg);
        response = data
        alert(response['code']);
        if (data.code == 0) {
            $('span#error_message').text(data.error).css('color', 'red');
        } else if (data.code == 1) {
            $('span#error_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);
        }
    }
});

控制器代码:

$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()]);
}

【问题讨论】:

  • 这一行之后:return response() -> json(['code' => 1, 'msg' => '数据保存成功']);有一个不应该存在的结束 }(} else { 与 $validator->passes if 子句有关。

标签: jquery ajax laravel laravel-5


【解决方案1】:

在控制器中更新这一行

return response() -> json(['code' => 1, 'msg' => 'data saved successfully'],200);

ajax

$.ajax({
    .........
    ,
    success: function(data) {

       ........

    },
    error: function(response) {

        ...........
    }
});

控制器

           if ($validator->passes()){
                dd('1');
                $property = new Properties();
                $property->country = $request->country ; 
                $property->city = $request->housecity ; 
                $property->location = $request->houseaddress ;
                $property->description = $request->propertiesdescription ;
 
                $property->price = $request->price; 
                dd('2');
                     $property->save();   
                     dd('3');
                     return response()->json(['code' => 1, 'msg' => 'data saved successfully'],200);
                    } 

【讨论】:

  • 不,那样不行,还是一样。
  • 我已在您的 ajax 中更新了答案添加“错误”部分并打印响应
  • 它在验证未通过并且我收到错误时确实有效,但在成功的情况下为什么它不起作用。
  • 它只给出对象对象就是它。当我做 JSON.parse() 仍然相同并且我也使用了 stringify 但没有结果仍然相同。
  • 更新你的控制器。答案中的代码。
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
相关资源
最近更新 更多