vue.js Laravel“Symfony\组件\Http内核\异常\Http异常”错误

6bc51xsx  于 2022-11-17  发布在  Vue.js
关注(0)|答案(4)|浏览(165)

在我的Laravel,Vue JS应用程序中,在我将应用程序传输到我们的服务器后,我得到了这种类型的错误。
Symfony\组件\Http内核\异常\Http异常
我在这里看到了同样的问题,但是没有答案。我希望这次有人能为这种错误提供答案或解决方案。

备注:

1.仅当我尝试使用其他设备从服务器访问应用程序时,才会发生此错误。
1.错误发生不规则。如果它不显示在第一次,有时会显示后,2个或更多 AJAX 请求。
1.我使用vForm来处理 AJAX 请求。
1.它在我的pc/localhost上工作得很好。
1.当我试图访问我的服务器内的应用程序时,它也工作得很好。我的意思是,我试图使用我们服务器内的浏览器,它工作得没有问题。
“附言”

  • 我检查了我的请求标题X-CSRF-TOKEN在那里。
  • 在我的请求负载_token中也有。
    以下是我的代码:

VueJS方法:

UpdateDepartmentInfo(){

            this.departmentToUpdate._token = this.$root.csrf;

            this.requestUpdateDepartmentOnProgress = true;

            this.departmentToUpdate.put('department/'+this.departmentToUpdate.id)
                .then((response) => {              
                    this.requestUpdateDepartmentOnProgress = false;      
                    this.GetDepartmentList();
                    swal(
                        'Department Info. Saved!',
                        'Department information has been successfully updated to database!',
                        'success'
                    );
                })
                .catch((error) => {
                    this.requestUpdateDepartmentOnProgress = false;
                    if (error.response.status == 401) {
                        alert('User session has expired. Please login again.');
                        location.replace("/login");
                    }
                });
        }

Laravel控制器:

public function update(Request $request, $id)
    {

        // Check if the department object from model if it exists
        try{
            $department = Department::findOrFail($id);
        }catch(\Exception $e){
            return response(['error' => 'The department you want to edit can\'t be found in the database!' ], 400);
        }

        // check if it was just the status was sent 
        if($request['newStat'] != null){
            $department->status  = $request['newStat'];
        }else{

            $this->validate($request,[
                'name'      => 'required|string|max:191',
                'code'      => 'required|string|max:10',
            ]);

            $department->name           = $request['name'];
            $department->code           = $request['code'];
            $department->description    = $request['description'];
            $department->status         = $request['status'];       
        }

        $department->save();
        return ['message' => 'ok'];

    }

提前感谢!

xam8gpfp

xam8gpfp1#

在.env文件中进行如下更改

APP_URL=http://your_server_url

或者您必须将thinking放在index.php文件中,

header("Access-Control-Allow-Origin: http://localhost");
h5qlskok

h5qlskok2#

检查组件中的resources/js/components文件夹(如果您有
http://127.0.0.1:8000/fetchusers
将其更改为

fetch('fetchusers',{
            method:'POST',
            headers:{
                'Content-Type':'application/json',
                X_CSRF_TOKEN:('meta[name="csrf-token"]').content,
                'Accept':'application/json'
            }
        })

也许会有帮助。

avkwfej4

avkwfej43#

这通常是因为csrf_token,您可以查看此文档,希望它也能解决您的问题。
https://laravel.com/docs/5.6/csrf#csrf-x-csrf-token
待办事项:<meta name="csrf-token" content="{{ csrf_token() }}">

headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});```
lymnna71

lymnna714#

检查您的storage/log/laravel.log文件是否存在。此外,他们还具有写/读权限
这可以通过运行以下命令很容易地修复:

sudo chmod -R 777 storage/logs

相关问题