2011-01-24 17 views
0

私は503エラーで応答するファイルの応答を表示しようとしています。

function netbootupdate() { 


$("#netbootstatus").html('Updating..'); 
    $.ajax({ 
    type: 'GET', 
    url: 'clientarea.php', 
    data: 'action=productdetails&id=' + $('#serverid').val() + '&modop=custom&a=netbootset&netbootid=' + $('#netbootid').val() + '&root=' + $('#root').val(), 
    timeout: 5000, 
    success: function(data) { 
     $("#netbootstatus").html(data); 
     $("#status").html(''); 
    }, 
    error: function(data) { 
     $("#status").html(data); 
     $('#status').addClass('errorbox'); 
    } 
    }); 
} 

何らかの理由でデータが私に返信の内容を与えることはありません。

+1

なぜデータを引用符で囲んでいるのですか?変数名です。また、実際にはXMLHttpRequest、textStatus、errorThrownを引数として "data"を指定する必要があります。返されるエラーの詳細を取得することができます。 –

+0

ああ、申し訳ありません...はい、私のコードではデータが引用符で囲まれていませんでした。ちょうど1秒前に静的に設定して、正しい場所に出力するようにしました。 XMLHttpRequestとerrorThrownは空です。 textStatusはエラーで応答します。しかし、私はHTMLレスポンスを表示するようにしたい。 – Florian

+0

あなたはそれらが空であると確信していますか?前者は[アクセス可能なプロパティ]を持つオブジェクトである必要があります(http://msdn.microsoft.com/en-us/library/ms535874%28v=vs.85%29.aspx) –

答えて

0

AFAIK、一部のブラウザでは、ステータスが2xx、3xx以外の場合、XHRはデータを渡すことを拒否します。 503レスポンスのデータが必要な場合は、サーバー側でHTTPステータスコードを書き換えてみてください。 complete(data, textStatus, XMLHttpRequest)コールバックで

、あなたは503を検出するための文字列errorためtextStatusをチェックして(ああ、あなたが既に知っているだけで実現している)

REF:http://api.jquery.com/jQuery.ajax/

編集:使用complete()代わりのsuccess()へすべての結果をキャッチします。

1
$.ajax({ 
    // ... 
    // [other arguments] 
    // ... 
    error: function(xmlReq, txtStatus, errThrown){ 
    $('#status').text(xmlReq.responseText).addClass('errorBox'); 
    } 
}); 

私はこれがあなたのためだと思います。いずれにしても、xmlReq(名前を付けたように)には、アクセスして参照することができるseveral propertiesが関連付けられています。

0

これが役立つかどうかわかりませんが、データベースが利用できないときに503エラーが発生するWebサービスがあります。正しくHTTP 503応答コードを返しますが、クライアントサイドスクリプトで返されるAJAX応答コードは500(サーバーエラー)です。特定の503ではなく、一般的な5 **レスポンスコードハンドラが必要な場合があるので、すべてのサーバー関連の問題をキャッチできます。これは私がやったことです。

関連する問題