我正在使用Bing Search API(Azure)使用javascript / json检索新闻头条列表。它正在工作,但由于某种原因忽略了$ top(计数)值,并给出了默认/最大(15)个结果数,无论我放在那里。
电话是:
https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?$format=JSON&Query=%27MyQuery%27&Sources=%27news%27&Market=%27en-US%27&Adult=%27Off%27&$top=5&$skip=0
我可以使用我页面上的代码限制它,但这对我来说似乎很浪费。我怀疑这是显而易见的,我错过了..
感谢您的帮助。
注意:我正在使用的$ .ajax中的实际代码行是代理php脚本:
url: "scripts/bingapi.php?query=" + escape("https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?$format=JSON&Query=%27MyQuery%27&Sources=%27news%27&Market=%27en-US%27&Adult=%27Off%27&$top=10&$skip=0"),
这可能与“逃避”有关吗?
答案 0 :(得分:1)
您遇到的问题是由于JavaScript的escape未处理美元符号$
字符。我建议使用encodeURIComponent代替:
url: "scripts/bingapi.php?query=" + encodeURIComponent("https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?$format=JSON&Query=%27MyQuery%27&Sources=%27news%27&Market=%27en-US%27&Adult=%27Off%27&$top=10&$skip=0"),
我希望这有帮助!
答案 1 :(得分:1)
来自Bing Composite服务操作文档:
另请注意,使用OData保留参数$ top返回的结果数是指除查询以外的查询中指定的所有数据源。当您在复合查询中使用新闻时,新闻将始终返回固定数量的15个新闻结果。