duanbarong4321 2018-01-22 17:03
浏览 71
已采纳

Laravel Ajax响应返回json上方的文本

I'm writing to my model using ajax and if there is an error like a duplicate I need it to throw a json response.

$model = Product::find($id);
$model->{$col} = $request->value;    

try{
        $model->save();
    } catch (Exception $e){   
        return Response::json(['error' => $e->getMessage()], 500);
    }

If there is an error it returns the following with a response code of 200 so my error handling in ajax doesn't get to touch this. I also can't handle it in the success function because it's not pure json

HTTP/1.0 500 Internal Server Error
Cache-Control: no-cache, private
Content-Type:  application/json
Date:          Mon, 22 Jan 2018 16:06:17 GMT

{"error":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry...."}

I found adding http_response_code(500) Before the return did then give me a status response of 500 but the responseText was still the same and contained the extra text and not just pure json

The response I want should look this

{"error":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry...."}

Here's my js ajax code

var post_data = {id:$(this.attr('id),value:$(this).value()}   



$.ajax({
    type:'POST',
    data: post_data,
    beforeSend:function(){
       //stuff here to show user somethign is happening
    },
    success:function(returned_data){

        console.log('successful!')

        console.log(returned_data);
    },
    error:function(event, jqXHR, ajaxSettings, thrownError ) {
         console.log('event');
         console.log(event);
         console.log('jqXHR');
         console.log(jqXHR.responseText);

         console.log('thrownError');
         console.log(thrownError);
    }

}

What am I doing wrong that laravel is sending this text that looks like the headers, instead of just the pure json?

Edit: Added code before try catch

Also, I am purposefully causing this error so I can make sure my error handling is working but isn't because I'm not getting pure json and it's returning a 200 response code

  • 写回答

2条回答

      报告相同问题?

      悬赏问题

      • ¥15 vs创建SQL Server数据库时出现“系统找不到指定的路径”
      • ¥15 网页超时时间设置失效
      • ¥15 有关绿色信贷毕业论文的问题
      • ¥30 关于#机器人#的问题,如何解决?
      • ¥15 求MATLAB函数ScalarLayerDisplay的代码
      • ¥15 安卓如何自动执行检测到的NFC标签,无需再点确认
      • ¥15 pyHM库mouse模块的ValueError错误
      • ¥15 python opencv 摄像头 传感器
      • ¥30 eMMC&Android&C&Linux
      • ¥15 uniapp ios恢复购买