1

キャリアビルダー 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をロードできません。オリジンhttp://fiddle.jshell.netは Access-Control-Allow-Origin で許可されていません。

これは jsfiddle の制限です。

于 2013-09-28T03:37:49.443 に答える