Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 如何处理来自youtube gdata的400条回复;回答“什么?”;?_Ajax_Youtube Api - Fatal编程技术网

Ajax 如何处理来自youtube gdata的400条回复;回答“什么?”;?

Ajax 如何处理来自youtube gdata的400条回复;回答“什么?”;?,ajax,youtube-api,Ajax,Youtube Api,我有一个应用程序,允许用户填写包含youtube链接的表单。很多时候,视频链接是无效的,我必须手动修复它。我想在允许用户提交表单之前验证url 我在firebug控制台上编写了一些代码: function test() { // var x1 = "http://gdata.youtube.com/feeds/api/videos/OvcaXrWFM2Q"; var x1 = "http://gdata.youtube.com/feeds/api/videos/VIDEO_ID?a

我有一个应用程序,允许用户填写包含youtube链接的表单。很多时候,视频链接是无效的,我必须手动修复它。我想在允许用户提交表单之前验证url

我在firebug控制台上编写了一些代码:

function test() {
//    var x1 = "http://gdata.youtube.com/feeds/api/videos/OvcaXrWFM2Q";
    var x1 = "http://gdata.youtube.com/feeds/api/videos/VIDEO_ID?alt";
    var asd = false;
    $.ajax({
        dataType: 'jsonp',
        async: false,
        url: x1, 
/*        success: function(data) {
            console.log("success --> ", data.length);
            return true;
        },
        error: function(error) {
            console.log("error --> ", error);
        },
*/        complete: function(e){
            console.log("complete --> ", e);
            return true;
        }
    });

//    return false ;
    return asd;
}


var y = test();

if (y) {
    console.log("success y --> " + y);
} else {
    console.log("error y --> " + y);
}
无效的400请求:

>>> function test() { //    var x1 = "http://gdata.y...} else {     console.log("error y --> " + y); } 

error y --> false
"NetworkError: 400 Bad Request - http://gdata.youtube.com/feeds/api/videos/VIDEO_ID?alt&callback=jsonp1375741532312&_=1375800027900"
有效答复:

>>> function test() {     var x1 = "http://gdata.you...} else {     console.log("error y --> " + y); } 

error y --> false
success --> 4516
jquery....min.js (line 29)
complete --> undefined
jquery....min.js (line 29)
我该怎么做才能赶上那400?此外,代码似乎在到达success:function()之前到达了“console.log(“success y-->”+y);”

编辑:

我的另一个选择是使用java将此验证发送到后端,但我更喜欢使用js

public static void main(String[] args) throws ParseException {
        String[] urls = new String[2];
        urls[0] = "http://gdata.youtube.com/feeds/api/videos/OvcaXrWFM2Q";
        urls[1] = "http://gdata.youtube.com/feeds/api/videos/23487978923789423789342sufyu";
        HttpURLConnection con;
        HttpURLConnection.setFollowRedirects(false);
        for (String url : urls) {
            try {
                con = (HttpURLConnection) new URL(url).openConnection();
                con.setRequestMethod("HEAD");
                System.out.println(con.getResponseCode());
            } catch (IOException e) {
                System.out.println(e);
            }
        }
    }
public static void main(String[] args) throws ParseException {
        String[] urls = new String[2];
        urls[0] = "http://gdata.youtube.com/feeds/api/videos/OvcaXrWFM2Q";
        urls[1] = "http://gdata.youtube.com/feeds/api/videos/23487978923789423789342sufyu";
        HttpURLConnection con;
        HttpURLConnection.setFollowRedirects(false);
        for (String url : urls) {
            try {
                con = (HttpURLConnection) new URL(url).openConnection();
                con.setRequestMethod("HEAD");
                System.out.println(con.getResponseCode());
            } catch (IOException e) {
                System.out.println(e);
            }
        }
    }

我得到了预期的输出,有效视频id为200,无效视频id为400。

要获得响应状态代码,我必须将检查移动到后端java。Javascript就是做不到这一点