如何使用 XMLHttpRequest() 将 JSON 存储在 Laravel 数据库中?

Posted

技术标签:

【中文标题】如何使用 XMLHttpRequest() 将 JSON 存储在 Laravel 数据库中?【英文标题】:How to use XMLHttpRequest() to store a JSON in a Laravel database? 【发布时间】:2021-10-16 20:28:53 【问题描述】:

我当前的错误是我似乎没有向我的控制器获取信息,Auth::user 似乎不起作用,是否有办法在控制器中打印信息?没有转储、dd、var_dump 等似乎向我展示了任何东西。

这是我刀片中脚本标签中的 javascript。 (取自 Surveyjs.io)

var survey = new Survey.Model(this.surveyJSON, surveyContainer);
                survey.onComplete.add(function (sender, options) 
                var xhr = new XMLHttpRequest();
                xhr.open("POST", "/api/survey");
                xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                xhr.send(JSON.stringify(sender.data));
                console.log(JSON.stringify(sender.data));

然后我在 web.php 中有我的 Route::post。我希望将我的数据发送到 CreateController 中的检索()。

Route::post('/api/survey', [\App\Http\Controllers\CreateController::class,'retrieval'])->name('survey-questions');

在我的 CreateController.php 中,我想用当前用户的 id 存储传入的 json。

Survey::create(['answers' => response()->json($request->all()), 'author_id' => Auth::user()]);

【问题讨论】:

“没有转储、dd、var_dump 等似乎向我展示了任何东西。” — 你在哪里寻找输出? 我正在寻找 JSON 的信息以确认它已发送到控制器。但是,什么都不会打印。 是的,但是在哪里你在寻找那个? 在我从路由得到的请求中。因此,我在网上到处寻找正确的方法来从请求中提取信息。你问的是这个吗? 我希望您说“在 PHP 日志文件中”或“在浏览器 UI 的某些特定部分” 【参考方案1】:

想通了!

感谢昆汀,我找到了答案。我了解了有关 laravel.log 以及如何使用 Log::info($data) 在那里打印消息的更多信息。

我将 Auth::user() 更改为 Auth::user->id 并更改:

Survey::create(['answers' => response()->json($request->all()), 'author_id' => Auth::user()]);

Survey::create(['answers' => json_encode($data), 'author_id' => Auth::user()->id]);

感谢大家的cmets!

【讨论】:

以上是关于如何使用 XMLHttpRequest() 将 JSON 存储在 Laravel 数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Github API v4 (graphql) 与 javascript XMLHttpRequest 一起使用

如何使用 XMLHttpRequest() 将 JSON 存储在 Laravel 数据库中?

在 JavaScript 中,我/应该如何将 async/await 与 XMLHttpRequest 一起使用?

如何让 Axios 使用 Fetch 而不是 XMLHttpRequest

如何使用 Javascript 和 XMLHttpRequest 加载二进制图像数据?

如何使用 Javascript 和 XMLHttpRequest 加载二进制图像数据?