2017-01-08 2 views
0

Я создаю поисковую систему, используя API New York Times. Как я могу получить поисковый запрос, который пользователь вводит для включения в URL-адрес JSON? Прямо сейчас, происходит то, что добавляется только слово «searchTerm», а не значение введенного текста. Есть идеи? Здесь Вы можете найти свой код до сих пор:New York Times 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.

Per @charlietfl комментарий, вы можете также передать параметр данных в вашем АЯКС вызова

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

Смежные вопросы