我正在使用纽约时报API创建搜索引擎。如何获取用户输入的搜索词以包含在JSON URL中?现在,正在发生的事情是只添加了“searchTerm”这个词,而不是输入的文本的值。有任何想法吗?请在下面找到我的代码:
$(document).ready(function(nytapi) {
$("#searchButton").click(function(search) {
search.preventDefault()
// Pick up search terms written in form
var searchTerm = $("#searchTerm").val().trim();
// Pick up number of results selected by user
nResults = $("#recordsRetrieve").val();
// Pick up start/end year
startYear = $("#startYear").val().trim();
endYear = $("#endYear").val().trim();
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': " ",
'q': "searchTerm"
});
$.ajax({
url: url,
method: 'GET',
}).done(function(result) {
console.log(result);
// $('#output').html(JSON.stringify(result)); prints object onto page
}).fail(function(err) {
throw err;
});
// Test to see if values are working
// $("#output").html(searchTerm);
// $("#output").html(nResults);
// $("#output").html(endYear);
console.log(url);
});
});
答案 0 :(得分:0)
您使用"searchTerm"
作为参数,更改
url += '?' + $.param({
'api-key': "your api key",
'q': "searchTerm"
});
到
url += '?' + $.param({
'api-key': "your api key",
'q': searchTerm
});
此外,建议您从这样的公共论坛中发布的代码中删除敏感信息,请确保生成新的API。
根据@charlietfl评论,您还可以在ajax调用中传递data参数
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
$.ajax({
url: url,
method: 'GET',
data: {
q: searchTerm,
'api-key': "[your key]"
}
}).done(function(result) {
console.log(result);
}).fail(function(err) {
throw err;
});