ajax URL失败时的控制台错误

时间:2014-08-11 07:53:30

标签: jquery ajax validation jsonp

我正在尝试从Youtube和Dailymotion视频网址获取视频信息。当我将错误的URL传递给ajax时,它会在控制台中出错。

HTML

<input type="text" id="addUrl">

的jQuery

$('#addUrl').on('keyup', function () {
    $url = $(this).val();
    $updatedUrl = 'http://gdata.youtube.com/feeds/api/videos/' + $youtubeVideoId + '?v=2&alt=json';

    $.ajax({
        url: $updatedUrl,
        dataType: "jsonp",
        success: function (data) {

            //If the video URL is Youtube...
            if ($url.indexOf("youtube") >= 0) {
                var title = data.entry.title.$t;
                var description = data.entry.media$group.media$description.$t;
                var thumbnail = '<img src="' + data.entry.media$group.media$thumbnail[0].url + '"alt=""/>';
            }

            //If the video URL is Dailymotion...
            if ($url.indexOf("dailymotion") >= 0) {.....
            }
        },
        error: function (data) {
            alert('Invalid action');
        }
    });
});

如果我在$.ajax之前放置了if条件,那么在输入错误时我没有看到任何控制台错误。我只需将if保留在成功函数中。

如果出现错误,如何在没有控制台错误的情况下传递验证消息?

1 个答案:

答案 0 :(得分:0)

我仍然不确定你期望实现的目标和方式, 但这是一个小小提琴代码,可以检测输入的url字符串 只有在检测到“youtube”或“dailymotion”字符串时才会调用$.ajax

这会阻止您在每次触发keyup事件时调用ajax。

此外 - 您应该使用$.ajax定义要进行的请求类型,例如POSTGET

我在这里使用一个简单的功能

function updateURL( updatedUrl, video ) {
  $.ajax({
    url: updatedUrl,
    type:"POST", //verify this method
    dataType: "jsonp",
    success: function (data) {

        //If the video URL is Youtube...
        if ( video == "yt") {
            var title = data.entry.title.$t;
            var description = data.entry.media$group.media$description.$t;
            var thumbnail = '<img src="' + data.entry.media$group.media$thumbnail[0].url + '"alt=""/>';
        }

        //If the video URL is Dailymotion...
        if ( video == "dm") {
        }
    },
    error: function (data) {
        alert('Invalid action');
    }
});

}

随意将其修改为您需要的任何内容。

希望这会有所帮助: JSfiddle