0

私の ajax (リモート サーバーから json データをプルする) では、別のページへのリンクを含めるために html div を追加しています。このリンクのクラス属性を「ajaxify」という関数に設定する必要があります。問題は、これがアプリケーション全体で問題なく機能することです.. ajax return 関数に追加されたときにエラーが発生し、その結果、この関数はロードされません..

正直なところ、ロードされることもあれば、ロードされないこともあります!! 典型的なジャバスクリプト。

また、誰かが Windows でのサファリ用の優れたデバッガーを私に勧めてくれたら、それも大歓迎です...私は現在、暗闇の中で実行しています

ここにコードがあります

$.ajax({
    url: 'url',
    dataType: 'jsonp',
    jsonp: 'jsoncallback',
    timeout: 25000,
    success: function(data, status){
        $.each(data, function(i,item){
            var recipe = "<div class='icon-text'><a class='ajaxify' href='pages/onlineRecipe.html' onclick='$(setOnlineID("+item.id+"))' >"
                         +"<p><img alt='Image-alt' width='64' class='wrap-around' id='img"+item.id+"' />"
                         +"<strong>"+item.title+"</strong>"
                         +"<br/>"+item.desc+"</p></a></div>";

            $('#onlineList').append(recipe);
                var img = "#img" + item.id;
                $(img).attr('src', "data:image/png;base64,"+item.image);
        });
    },
    error: function(){
        output.text('Ha producido un error cargando el dato. Por favor, intèntalo de nuevo.');
    }
});

私はこの段階で数時間これに固執しており、非常に迷惑です. どんな助けや提案も大歓迎です! 前もって感謝します。

編集:これはjquerys onload関数「$(document).ready(function(){」で呼び出されているため、ajaxがdivにリンクを追加する前にhtmlが完全にロードされます..これが何か関係があるのだろうか??

4

1 に答える 1

0

まず最初に、JSONP リクエストの場合、.ajax呼び出しでエラー ハンドラーが呼び出されません。

jQueryのドキュメントから:

error(jqXHR, textStatus, errorThrown)

    Note: This handler is not called for cross-domain script and JSONP requests.

これを試して

$.ajax({ url: 'url',
  dataType: 'jsonp',
  timeout: 10000,
  jsonp: "callback",
  jsonpCallback: callbackMethod,
});

function callbackMethod(jsonData) {
// this would be called on callback
}

詳細については、こちらをご覧ください: jQuery AJAX

于 2012-09-22T19:56:17.063 に答える