1

我有一个从 Careerbuilders 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/

4

2 回答 2

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()
        );
    });
}
于 2013-09-28T03:59:20.607 回答
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 限制。

于 2013-09-28T03:37:49.443 回答