【问题标题】:Pixabay API always showing same resultsPixabay API 始终显示相同的结果
【发布时间】:2020-01-08 10:13:50
【问题描述】:

我正在使用下面的代码和一个搜索字段(输入)从 Pixabay上返回结果。无论我在搜索中使用什么关键字,我总是得到相同的 5 个结果(见附图)。我错过了什么?非常感谢任何帮助!

var API_KEY = 'my_hidden_api_key',
		searchTerm,
		submitSearch = $('#cms_pixaSearchBtn'),
		boxPixaResults = $('#cms_displayPixaResults'),
		URL = "https://pixabay.com/api/?key="+API_KEY+"&safesearch=true&q="+encodeURIComponent(searchTerm);
	
	
	
	submitSearch.click(function(){
		searchTerm = $('#cms_pixaSearchKeywords').val();
		console.log(searchTerm);
		
		$.getJSON(URL, function(data){
		if (parseInt(data.totalHits) > 0)
			$.each(data.hits, function(i, hit){ 
				console.log(hit.pageURL); 
				boxPixaResults.append('<img src="' + hit.previewURL + '" alt="">');
			});
		else
			console.log('No hits');
		});	
	}); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<input id="cms_pixaSearchKeywords" type="text" value="">		
<input id="cms_pixaSearchBtn" type="button" value="search">

<div id="cms_displayPixaResults"></div>

【问题讨论】:

  • console.log(searchTerm);显示“晚餐”?
  • 那是在我使用“晚餐”作为搜索关键字的情况下。问题解决了,下面是正确答案。谢谢!

标签: javascript jquery json rest api


【解决方案1】:
URL = "https://pixabay.com/api/?key="+API_KEY+"&safesearch=true&q="+encodeURIComponent(searchTerm);

在点击处理程序被调用之前定义:

submitSearch.click(function(){
        searchTerm = $('#cms_pixaSearchKeywords').val();

所以searchTerm 是空的。

根据documentation,如果q 为空,您将获得所有图像。

修复:

submitSearch.click(function(){
        searchTerm = $('#cms_pixaSearchKeywords').val();
        URL = "https://pixabay.com/api/?key="+API_KEY+"&safesearch=true&q="+encodeURIComponent(searchTerm);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多