纽约时报API JSON

时间:2017-01-08 22:07:42

标签: jquery json api

我正在使用纽约时报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); 


 });

});

1 个答案:

答案 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;
});