2017-01-08 5 views
0

Ich erstelle eine Suchmaschine mit dem New York Times API. Wie kann ich einen Suchbegriff erhalten, den der Benutzer für die Aufnahme in die JSON-URL eingibt? Im Moment wird nur das Wort "searchTerm" hinzugefügt, nicht der Wert des eingegebenen Textes. Irgendwelche Ideen? Bitte unter meinem Code finden so weit: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); 


}); 

}); 

Antwort

0

Sie "searchTerm" als Parameter verwendet wird,

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

Um

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

auch ändern, wird empfohlen, sensible Informationen von Codes entfernen Sie post in öffentlichen Foren wie diesem, bitte stellen Sie sicher, um eine neue apikey zu generieren.

Per @charlietfl Kommentar, können Sie auch die Datenparameter in Ihren Ajax-Aufruf übergeben

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

keine Notwendigkeit '.param' für diese manuell $ zu verwenden, wird das Objekt als' data' Option und jQuery geben Mach das intern – charlietfl

Verwandte Themen