0

ajax呼び出しを使用して、サーバーからテキスト値(「選択されたクレート」)を取得しようとしています。Ajax 呼び出しは次のとおりです。

var selected_crate ='';

$.ajax({
    url: OC.linkTo('crate_it', 'ajax/bagit_handler.php')+'?action=get_crate',
    type: 'get',
    dataType: 'text/html',
    success: function(data){
        selected_crate = data.responseText;
        $('#crates option').filter(function(){
            return $(this).attr("id") == selected_crate;
        }).prop('selected', true);
    },
    error: function(data){
        var e = data.responseText;
        alert(e);
    }
});

サーバー側のコード スニペットは次のとおりです。

case 'get_crate':
    $msg = $bagit_manager->getSelectedCrate();
    print $msg;
    break;

成功したら何かしたいのですが、この呼び出しは常にエラーハンドラーになります。完全なハンドラーがあれば、そのハンドラーに入ります。しかし、成功ハンドラーとエラーハンドラーの両方を使用したいので、

  1. サーバー側で問題が発生した場合にエラー応答を送信する
  2. クライアント側で成功に何かをする

私はこれを達成するのに苦労しています。この呼び出しが常にエラー ハンドラーになるのはなぜですか?また、エラーが発生した場合にエラー ハンドラーになるこの呼び出しに関して、エラー応答を実際に送信するにはどうすればよいですか?

4

3 に答える 3

0

URLが正しい場合は、これを試してください:

dataType: "html"

参照: http://api.jquery.com/jQuery.ajax/

于 2013-07-09T07:06:05.483 に答える
0

エラーハンドラーデータが取得されたかどうかを確認してください。データが正しく取得されている場合は、データ型が ajax 呼び出しの応答と一致していないことを意味します [その場合、いくつかの追加の値を返す必要があることをサーバーコードを参照してください]

于 2013-07-09T06:58:55.690 に答える
0

URL: OC.linkTo('crate_it', 'ajax/bagit_handler.php')+'?action=get_crate',

この代わりに、次のような URL を直接試してください

URL: www.yoursite.com/ajax/bagit_handler.php?action=get_crate

成功への手助けになると思います。

于 2013-07-09T07:01:55.597 に答える