如何使用 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