我正在尝试从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
保留在成功函数中。
如果出现错误,如何在没有控制台错误的情况下传递验证消息?
答案 0 :(得分:0)
我仍然不确定你期望实现的目标和方式,
但这是一个小小提琴代码,可以检测输入的url字符串
只有在检测到“youtube”或“dailymotion”字符串时才会调用$.ajax
。
这会阻止您在每次触发keyup
事件时调用ajax。
此外 - 您应该使用$.ajax
定义要进行的请求类型,例如POST
或GET
。
我在这里使用一个简单的功能
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