2 つの Reed 求人サイト API を呼び出そうとしています。1 つは雇用主 ID でリストされたすべての求人を検索するためのもので、もう 1 つは最初の検索で見つかったすべての求人 ID のデータを取得するためのものです。データは最初の API 呼び出しから正常に取得され、関連データを問題なくページに配置するためのハンドルバーを取得できます。2 番目の API が呼び出され、データが JS コンソールに表示されますが、ページに配置されると、コンソールに「未定義のプロパティ 'jobTitle' を読み取れません」と表示されます。簡単なものになることはわかっていますが、私はJS / APIの世界に比較的慣れていないので、手で行うことができます!
これが私のhtmlです
<div id="results">
<table>
<tbody>
<script id="reedsearch-template" type="text/html">
<tr>
<th>{{ jobTitle }}</th>
<td>{{ locationName }}</td>
<td>£{{ minimumSalary }} - £{{ maximumSalary }}</td>
<td>{{ jobUrl }}</td>
</tr>
</script>
</tbody>
</table>
</div>
これが私のJSです(APIキーを削除しました)
$(document).ready(function () {
var reedsearchHtml = $("#reedsearch-template").html();
var reedsearchTemplate = Handlebars.compile(reedsearchHtml);
$.ajax({
type: "get",
async: true,
url: "http://www.reed.co.uk/api/1.0/search?employerId=p8799",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("API KEY:"))
},
success: function (data) {
console.log(data.results);
for (var i = 0; i < data.results.length; i++) {
var job = data.results[i];
var jobHtml = reedsearchTemplate(job);
$("#results").append(jobHtml);
var reedUrl = "http://www.reed.co.uk/api/1.0/jobs/";
var id = job.jobId
var url = reedUrl + id;
$.ajax({
type: "get",
async: true,
url: url,
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("API KEY:"))
},
success: function (data) {
console.log(data);
var jobDetails = data.results;
var detailsHtml = reedsearchTemplate(jobDetails);
$("#results").append(detailsHtml);
}
});
}
}
});
});
優しくしてください、事前に感謝します:)