javascript - 使用美国农业部 REST API

标签 javascript api meteor

无论我多么努力,我似乎​​都无法弄清楚如何使用 USDA REST API。我已经学习了大约 6 个关于如何使用 REST API 的不同在线教程,所有这些教程都不适用于这个特定的 API(我确定它是我遗漏的一些小东西,但我已经浪费了无数小时来做/看教程而没有成功)。

这是他们的 API 的链接: https://ndb.nal.usda.gov/ndb/doc/apilist/API-FOOD-REPORT.md

这是我在 JavaScript 中输入的内容:

xhr = new XMLHttpRequest();
xhr.open("GET", "http://api.nal.usda.gov/ndb/reports/", true);
console.log(xhr.status);

API 说要在参数中传递你的 API KEY,但这对我来说毫无意义,因为我读过的每一个教程都没有解释如何将 KEY 作为参数传递......如果有人介意花点时间编写访问此 API 所需的代码我将感激不尽。

更新:我也试过 JQuery 方法如下:

$.get(
    "http://api.nal.usda.gov/ndb/reports",
    {
        "api_key": "API KEY",
        "ndbno": "01009"
    },
    function(data) {
        console.log(data);
    }
);

没有运气。

更新 2: 离开 JQuery 示例大约 5 分钟后,我在 chrome 控制台中收到一条错误消息:

XMLHttpRequest 无法加载 http://api.nal.usda.gov/ndb/reports?api_key=(my API key )&ndbno=01009。请求的资源上不存在“Access-Control-Allow-Origin” header 。产地' http://localhost:3000 ' 因此不允许访问。响应具有 HTTP 状态代码 403。

最终更新:问题显然出在我的 ISP 上。需要处理:(

最佳答案

您引用的文档有一个示例请求 URL:

http://api.nal.usda.gov/ndb/reports/?ndbno=01009&type=b&format=xml&api_key=DEMO_KEY

您只需替换 ndbno、type、format 和 api_key 值(“=”之后的位)。例如,如果您的 API key 是 12345,您需要像这样更改它:

http://api.nal.usda.gov/ndb/reports/?ndbno=01009&type=b&format=xml&api_key=12345

一个完整的,尽管“很差”的实现是:

var apiKey = "DEMO_KEY";
var ndbno = "01009";
var type = "b";
var format = "json";

var url = "http://api.nal.usda.gov/ndb/reports/?ndbno=" + ndbno + "&type=" + type + "&format=" + format + "&api_key=" + apiKey;

$.get(url, function( data ) {
    alert( "Data Loaded: " + JSON.stringify(data) );
});

关于javascript - 使用美国农业部 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493970/

相关文章:

javascript - 使用 jquery 更改选项卡容器属性

javascript - Chrome 可能存在 CSS 兼容性问题?也许是javascript?

javascript - 在 Jquery 中使用 Last.fm 进行身份验证 - 提供的方法签名无效

javascript - Goo.gl 的 url 缩短 API 的列表分析

javascript - 使用 velocity、meteor 和 travis ci

javascript - Meteor:单击时将模板渲染到 DOM

javascript - 如果它是最后一个,如何删除 kendo dropDownList 的项目?

api - Golang 访问原始 Podio 字段值

javascript - 使用coffeescript时定义Meteor集合; ReferenceError 说集合未定义

javascript - 将所有逗号分隔的数字替换为 javascript 中字符串中的点分隔数字