执行 GET 请求时,如何仅获取 view() 函数的第二个参数的响应?
Posted
技术标签:
【中文标题】执行 GET 请求时,如何仅获取 view() 函数的第二个参数的响应?【英文标题】:How can I grab the response of only the 2nd parameter of the view() function when doing a GET request? 【发布时间】:2021-11-25 05:16:24 【问题描述】:我正在做一个 ajax GET 请求
$(dataTableSearchInputButtonID).on('click', function ()
$.ajax(
type: "GET",
url: "myUrl.test/tools",
dataType: "html",
success: function (resp)
console.log(resp);
,
);
);
但是,在控制台的响应中,我只在单击“搜索”按钮时看到 HTML(检索和显示数据)
public function getTriviaTags(Request $request)
try
$userSearch = $request->get('userSearch');
$tagsList = $this->tagRepository->getTags($userSearch);
$response = [
'tagsList' => $tagsList,
'userSearch' => $userSearch,
'trivia' => 'tag'
];
return view('pages.tools.main', $response);
catch (Exception $exception)
parent::log($exception, self::class);
在输入字段中输入文本并单击搜索时,如何确保 $response
变量出现在 ajax success()
方法中(console.log(resp);
)?
我需要将userSearch
附加到 URL (myUrl.test/tools?userSearch="countries") 以便显示正确的数据。当我在搜索栏中手动执行此操作时,它可以正常工作。
我在实现这一目标的正确轨道上吗?
【问题讨论】:
【参考方案1】:你不应该返回视图,而是 JSON 响应:
public function getTriviaTags(Request $request)
try
$userSearch = $request->get('userSearch');
$tagsList = $this->tagRepository->getTags($userSearch);
$response = [
'tagsList' => $tagsList,
'userSearch' => $userSearch,
'trivia' => 'tag'
];
return response()->json($response)
catch (Exception $exception)
parent::log($exception, self::class);
然后你可以通过console.log(resp.data)访问响应变量
【讨论】:
是的,但我实际上需要将视图与响应一起返回,这样我就可以访问 jquery 中的响应变量,但我不知道该怎么做(或者如果可能的话)。 如果我理解正确的话,我认为不是。为什么不以这种方式访问变量?没有什么能阻止你创建一个变量,比如 let whatever = response.data.tagsList以上是关于执行 GET 请求时,如何仅获取 view() 函数的第二个参数的响应?的主要内容,如果未能解决你的问题,请参考以下文章
使用 axios.get 方法加载页面时,如何仅从 API 获取数据一次?