【发布时间】:2017-05-09 16:13:17
【问题描述】:
基于下面的 JavaScript,我使用 Ajax 通过 API 调用特定数据。它使用用户名和密码进行身份验证。
我可以在控制台、标题和macro_address中看到我需要的数据,但是当它点击HTML页面时,它显示给我:
工作:未定义,位置:未定义
为什么?
$(function () {
var $jobs = $('#jobs');
$.ajax({
type: 'GET',
url: 'https://url.com/api/api-key/jobs?status=active',
username: 'user name',
password: 'password',
beforeSend: function (req) {
req.setRequestHeader('Authorization', 'Basic ' + btoa('username:password'));
},
success: function (jobs) {
$.each(jobs, function (i, prem) {
$jobs.append('<li> Job ' + prem.title + ', Location: ' + prem.macro_address + ' </li>');
});
}
});
在 HTML 文档中,我有一个名为#jobs 的简单 ul。此外,如果有帮助,这里是 API 端点上 JSON 的原始示例:
{
{
"current_page":1,
"total_pages":1,
"per_page":25,
"total_count":5,
"results":[
{
"id":00001,
"title":"Job title goes here",
"macro_address":"New York, NY",
"created_at":"2016-07-22T20:54:52.526Z",
"published_at":"2016-07-22T20:54:52.526Z"},
这是我正在使用的 jQuery dist:
http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
【问题讨论】:
-
这很难说,但我会将
console.log(jobs)放在success: function (jobs) {行的正下方并检查console 中的内容。你可以使用Ctrl+Shift+J (Windows / Linux) 或 Cmd+Opt+J (Mac)。 -
您好,感谢您的评论。我确实添加了这一点,但没有任何改变。数组信息在控制台中仍然可见,但输出仍然“未定义”。
-
听起来您实际上从 API 中一无所获。我会检查您的 API 代码并确保它确实在发送数据
标签: jquery json ajax api return