Javascript IMDb XML错误捕获,jQuery.type未返回任何内容

Javascript IMDb XML错误捕获,jQuery.type未返回任何内容,javascript,jquery,ajax,xml,json,Javascript,Jquery,Ajax,Xml,Json,我正在尝试捕获IMDb AJAX调用中的错误/无结果 代码获取与JSONP中的搜索词匹配的标题结果,以覆盖同源策略。 我正在学习本教程: 当没有结果时,IMDb发送一个XML错误,我试图捕获它并发出警报(“错误”) 代码如下: function searchDatabase() { var searchTerm = document.getElementById('search').value; var firstLetter = searchTerm.charAt(0);

我正在尝试捕获IMDb AJAX调用中的错误/无结果

代码获取与JSONP中的搜索词匹配的标题结果,以覆盖同源策略。 我正在学习本教程:

当没有结果时,IMDb发送一个XML错误,我试图捕获它并发出警报(“错误”)

代码如下:

function searchDatabase() {

    var searchTerm = document.getElementById('search').value;
    var firstLetter = searchTerm.charAt(0);
    var resultDiv = document.getElementById('result');

    $('#result').empty();

    $.ajax({
        url: 'http://sg.media-imdb.com/suggests/' +firstLetter+ '/' +searchTerm+ '.json',
        dataType: 'jsonp',
            jsonp: false,
        jsonpCallback: 'imdb$'+searchTerm,
        statusCode: {
            403: function() {
                alert('HTTP ERROR');
            }
        }
    }).done(function(response) {
        if(jQuery.type(response) !== "object") {
                alert('ERROR');
            } else {
            alert(jQuery.type(response));
                for(var x in response["d"]) {
                resultDiv.insertAdjacentHTML('beforeend', '<br/>' +response["d"][x]["l"]+ '<br/>');
            }
        }
    }).fail(function() {
        alert('ERROR');
    });

}
函数搜索数据库(){
var searchTerm=document.getElementById('search').value;
var firstLetter=searchTerm.charAt(0);
var resultDiv=document.getElementById('result');
$(“#结果”).empty();
$.ajax({
网址:'http://sg.media-imdb.com/suggests/“+firstLetter+”/“+searchTerm+'.json”,
数据类型:“jsonp”,
jsonp:false,
jsonpCallback:'imdb$'+搜索词,
状态代码:{
403:函数(){
警报(“HTTP错误”);
}
}
}).完成(功能(响应){
if(jQuery.type(response)!=“object”){
警报(“错误”);
}否则{
警报(jQuery.type(response));
对于(响应[“d”]中的var x){
resultDiv.insertAdjacentHTML('beforeend','
'+响应['d'][x]['l']+'
'); } } }).fail(函数(){ 警报(“错误”); }); }
首先,XML是什么数据类型?我对JSON和XML仍然很陌生,我想我理解JSON是一个对象?我在其他地方读到过JSON不是对象(与Javascript对象文字相比)

type返回“string”、“array”等,并将其他所有内容作为“object”返回。 当搜索项(例如“some”)成功返回结果时,它是JSON格式的,因此针对
if(jQuery.type(response)==='object'{alert('object!');}
发出警报,但当搜索项无效(例如“something”)时,它根本不返回任何内容,只在控制台中显示HTTP代码403

我还尝试按照这里的“statusCode”说明捕获AJAX调用中的HTTP代码:但它没有做任何事情


我是否错过了一个非常简单的方法来捕捉错误?恐怕我只是一个新手,我3天前才开始学习JSON和XML。谢谢!

我知道没有人回答,但我在问了这个问题几天后就找到了答案,希望其他寻找相同答案的人会发现这很有用。 我发现了这一点,这解释了在进行JSONP调用(跨域)时不能使用$.ajax'error'键捕获错误。这是迄今为止我发现的唯一有效的方法,用setTimeout记录错误