类型错误:response.data 未定义

吉多·卡法

我在 vForm PUT 更新模型(laravel 中的后端)的承诺响应方面遇到问题。

响应代码是 200(好的,已更新)并且模型已更新,但我不知道为什么我在 catch 中出现“response.data”错误。“.then()”中没有错误并且代码运行正常。

编辑

使用 vForm 的服务更新功能 (vue)。updateService(){ this.$Progress.start();

        this.service.put('api/service/' + this.service.id)
        .then( function (response) {

          Toast.fire({
            type: 'success',
            title: response.data['Response']
          });

          this.$Progress.finish();

        })
        .catch( function (response) {
          console.log(response);
          Swal.fire("Error!", response.data['Response'], "warning");
          this.$Progress.fail();

        });

        this.$events.$emit('ServiceInform');
      },

后端功能(laravel)。

public function update(Request $request, Service $service)
{
    $this->validate($request, [
        'id_customers'      => 'required|int',
        'date'              => 'required|date',
        'id_technicians'    => 'required|int',
        'location'          => 'required|string',
        'details'           => 'required|string'
    ]);

    if ($request['id_technicians'] !== $service['id_technicians']) {
        $assignated_by = Auth::user()->id;
        $assigned_date = date('Y-m-d H:i:s');
    } else {
        $assignated_by = $service['assignated_by'];
        $assigned_date = $service['assigned_date'];
    }

    if ($request['id_technicians'] == 0) {
        $state = 'P';
    } else {
        $state = 'I';
    }

    $service->date              = $request['date'];
    $service->id_technicians    = $request['id_technicians'];
    $service->location          = $request['location'];
    $service->details           = $request['details'];
    $service->assigned_date     = $assigned_date;
    $service->assigned_by       = $assignated_by;
    $service->state             = $state;

    try {

        $service->save();

        return Response::json([
            'Response' => 'Servicio actualizado.'
        ], 201);

    } catch (Exception $e) {
        return Response::json([
            'Response' => 'No se actualizó el servicio.'
        ], 422);
    }
}

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

裙摆

这条线在我看来有问题:

this.$Progress.finish();

它试图this在传递给then. 似乎不太可能this引用您的期望。您应该能够通过适当的控制台日志记录进行确认。我怀疑尝试调用this.$Progress.finish()会引发错误,从而触发catch.

尝试为您的thencatch回调使用箭头函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

[未处理的承诺拒绝:类型错误:未定义不是对象(评估'response.data')]

为什么response.data是未定义的?

用户未定义但 response.data 不是

类型错误 .then 未定义

this.props.data.map出现未定义错误

类型错误:无法读取未定义的属性“地图”反应 this.props.rsl['data']

v-on处理程序中的错误(承诺/异步):“ TypeError:无法读取未定义的属性'data'” //未定义

ReactJS + Axios“未捕获(承诺)错误:网络错误” | “未捕获的TypeError:response.data未定义”

R mlr surv.ranger `[.data.frame`(num.response, x == y) 中的错误:选择了未定义的列

警告:从SubmitForm()捕获了未处理的错误,[TypeError:未定义不是对象(正在评估'_context.t0.response.data')]

AJAX 类型错误:查询未定义

类型错误:RADIOBUTTON [i]是未定义

类型错误:历史未定义

未定义的元组的python类型错误

解决类型错误:事件未定义

AnyLogic getHomeLocation()错误“类型未定义”

类型错误:this.getResults(...) 未定义

对于类型错误,未定义findViewById

类型错误:无法读取未定义 onGridRowsUpdated 的属性“setState”(令人眼花缭乱的 React Data Grid)

类型'AxiosResponse <any> |类型上不存在属性'data'。未定义”

未定义的方法类型

使用未定义的类型

类型T未定义

未定义CsvProvider类型

未定义类型SampleTransaction

未定义输出类型

为什么从Youtube Data Api 3中“ response.result未定义”?

从存储在 vuex 中的 axios 获取未定义的 response.data

错误'propTypes'未定义,错误'defaultProps'未定义