0

我正在尝试使用 ajax 调用从服务器获取文本值('selected crate')。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

查看是否在错误处理程序中检索数据如果数据被正确检索,这意味着您的数据类型与 ajax 调用中的响应不匹配[请参阅您的服务器代码,在这种情况下它必须返回一些额外的值]

于 2013-07-09T06:58:55.690 回答
0

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

代替这个直接尝试 url 像

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

我认为这将帮助您获得成功。

于 2013-07-09T07:01:55.597 回答
0

如果 URL 正确,请尝试以下操作:

dataType: "html"

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

于 2013-07-09T07:06:05.483 回答