Ajax调用总是以错误处理程序结束

时间:2013-07-09 06:44:50

标签: php javascript jquery error-handling

我正在尝试使用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. 在客户端做一些成功的事情
  3. 我正在努力实现这一目标。为什么这个调用总是在错误处理程序中结束?如果发生任何错误,否则我如何实际发送关于此调用的错误响应,否则将成功响应?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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

我认为它会帮助你获得成功。

答案 2 :(得分:0)

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

dataType: "html"

请参阅:http://api.jquery.com/jQuery.ajax/