2017-01-08 65 views
0

我使用紐約時報API創建搜索引擎。如何獲得用戶輸入的搜索字詞以包含在JSON網址中?現在,發生的事情是隻添加了「searchTerm」這個詞,而不是輸入的文本的值。有任何想法嗎?請在下面找到我的代碼迄今:紐約時報API JSON

$(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

您使用"searchTerm"作爲參數,改變

url += '?' + $.param({ 
    'api-key': "your api key", 
    'q': "searchTerm" 
}); 

url += '?' + $.param({ 
    'api-key': "your api key", 
    'q': searchTerm 
}); 

此外,建議從代碼刪除敏感信息,你在這樣的公共論壇上發帖,請確保生成一個新的apikey。

每@charlietfl評論,你也可以通過數據參數在Ajax調用

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; 
}); 
+0

沒有必要使用'$ .param'手動爲此,傳遞對象作爲'data'選項和jQuery將在內部進行 – charlietfl

相關問題