我有一个从职业生涯api中提取数据的代码。在浏览器上测试时链接运行良好,但我似乎无法从中解析任何内容。小心告诉我出了什么问题?
html代码:
<div class="main">
Companies:
</div>
jQuery代码:
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://api.careerbuilder.com/v1/jobsearch?DeveloperKey=WDHL4Z86PBQY29Z7ZQQS&Location=Canada",
dataType: "xml",
success: xmlParser(xml)
});
});
function xmlParser(xml) {
$(xml).find("JobSearchResult").each(function () {
$(".main").append(
$(this).find("Company").text()
);
});
}
这是一个jsfiddle现场示例:http://jsfiddle.net/Cc4SY/
答案 0 :(得分:2)
在您的情况下,xml
将不会被定义。你必须将成功回调包装在另一个函数中,然后再调用你的xmlParser
函数。
您正在做的是调用xmlParser
函数并将返回值指定为成功回调,这不是预期的。所以你将它包装在另一个函数中并从该函数调用xmlParser
,在这种情况下,xml响应将正确传递给xmlParser
,你就可以解析它。
代码可能如下所示:
$(document).ready(function () {
$.ajax({
method: "GET",
url: "http://api.careerbuilder.com/v1/jobsearch?DeveloperKey=WDHL4Z86PBQY29Z7ZQQS&Location=Canada",
dataType: 'xml',
success: function (response) {
xmlParser(response);
}
});
});
function xmlParser(response){
var xml = $.parseXML(response);
$(xml).find("JobSearchResult").each(function () {
$(".main").append(
$(this).find("Company").text()
);
});
}
答案 1 :(得分:0)
我认为现在它正在发挥作用:
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://api.careerbuilder.com/v1/jobsearch?DeveloperKey=WDHL4Z86PBQY29Z7ZQQS&Location=Canada",
dataType: "xml",
success: function(xml)
{
xmlParser(xml);
}
});
});
在这里小提琴:http://jsfiddle.net/Cc4SY/2/
控制台响应:XMLHttpRequest无法加载http://api.careerbuilder.com/v1/jobsearch?DeveloperKey=WDHL4Z86PBQY29Z7ZQQS&Location=Canada。 Access-Control-Allow-Origin不允许原点http://fiddle.jshell.net。
这是一个jsfiddle限制。