我试图首次在纽约时报API(http://developer.nytimes.com/)中包含API密钥,并使用ajax从中获取新闻以填充本地网站,但我没有看到任何结果。我被告知要确保您的API密钥已在URL的查询参数中设置,但我不知道该怎么做。
?api-key=your-key
这就是我所做的:
// Built by LucyBot. www.lucybot.com
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': "111111111111111111111111111111"
});
$.ajax({
url: url,
method: 'GET',
}).done(function(result) {
console.log(result);
}).fail(function(err) {
throw err;
});
我需要以json格式查看各种故事的网址,例如商业,技术等,并将它们用于ajax调用。
答案 0 :(得分:0)
试试这个我从这个
获取数据
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': "11111111111111111111111"
});
$.ajax({
url: url,
method: 'GET',
dataType: 'JSON',
success: function(data) {
console.log(data)
},
error: function(err) {
console.log('error:' + err)
}
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
你也可以尝试如下
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
$.ajax({
url: url,
method: 'GET',
dataType: 'JSON',
data: {
'api-key': '11111111111111111'
},
success: function(data) {
console.log(data)
},
error: function(err) {
console.log('error:' + err)
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:0)
这不是一个好的做法,直接在客户端上下文中公开API Key。
我强烈建议在浏览器和API之间创建一个抽象层。
这个想法是将AJAX请求定位到一个自己的后端操作,例如:
var url = "www.mydomain.com/api/articlesearch";
$.ajax({
url: url,
method: 'GET',
}).done(function(result) {
console.log(result);
}).fail(function(err) {
throw err;
});
在后端(/ api / articlesearch)内部,我们使用API密钥将目标请求发送到NY Times
通过这种方式,您可以获得更合适的javascript代码,从而正确分配责任。
PS:如果您希望它更安全,您可以使用env变量定义API密钥。这是一个用Ruby制作的例子(仅供参考):
# Inside ApisController
def articlesearch
response = RestClient::Request.execute(
method: :get,
url: 'https://api.nytimes.com/svc/search/v2/articlesearch.json',
headers: {api_key: ENV['API_KEY']})
render json: response
end
使用这种方法,API密钥也不会出现在GIT存储库中:)
答案 2 :(得分:0)
嗯,你应该这样试试。它应该给你一个没有跨源错误的结果:
$.ajax({
type: 'GET',
url: 'http://api.nytimes.com/svc/search/v2/articlesearch.json',
data: {
'q': queryString,
'response-format': "jsonp",
'api-key': nytApiKey,
},
success: function(data) {
// passed function object for data processing
console.log(data);
},
error: function(err) {
console.log('error:' + err)
}
});