【发布时间】:2022-02-20 16:38:32
【问题描述】:
我正在尝试在发送参数q=<query>、第二个参数l=<lquery>的javascript中添加以下异步调用,但我没有看到它已发送出去,请在开发工具控制台中检查
var searchbox = $('input#search');
var langquery = $('input#fav_language');
var timer = 0;
// Executes the search function 250 milliseconds after user stops typing
searchbox.keyup(function () {
clearTimeout(timer);
timer = setTimeout(search, 250);
});
async function search() {
// Clear results before searching
noresults.hide();
resultdiv.empty();
loadingdiv.show();
// Get the query from the user
let query = searchbox.val();
// Only run a query if the string contains at least three characters
if (query.length > 2) {
let lquery = langquery.val();
// Make the HTTP request with the query as a parameter and wait for the JSON results
let response = await $.get(apigatewayendpoint, { q: query, l: lquery, size: 25 }, 'json');
html 正文如下。我尝试将单选表单 id 和输入名称引用到输入名称中,但均无效
<body>
<h1>InfoLang - Movie Plot At Your Language</h1>
<form id="lang">
<p>Please select language:</p>
<input type="radio" id="it" name="fav_language" value="Italian">
<label for="it">Italian</label><br>
<input type="radio" id="fr" name="fav_language" value="French">
<label for="fr">French</label><br>
<input type="radio" id="he" name="fav_language" value="Hebrew">
<label for="he">Hebrew</label>
<br>
</form>
<hr>
<input id="search" autocomplete="off" placeholder="Search your movie" align="center">
【问题讨论】:
-
这看起来不错。您在浏览器的开发工具 Network 面板中看到了什么?
-
但我没有看到它已发送出去。 => console 是你的朋友...在网络选项卡下,检查请求。
-
你的 HTML 是什么样的?有
<input id="fav_language">元素吗?进行 AJAX 调用时是否输入了值? -
你也可以在
let response...上方console.log({ q: query, l: lquery, size: 25 }); -
开发控制台仅显示 q=
,这就是为什么我有点困惑 l 参数来自该页面上的单选按钮表单,而 langquery 最初将其检索到 lquery 我尝试了几个选项来填充out langquery - 使用单选按钮中选项的 id 或名称。没有人填写似乎要在-xxxxxxx中填充空间的参数?q=matrix%20%20&size=25 将表格添加到上述问题中
标签: javascript jquery forms async-await api-gateway