我的$ .get请求失败,但我需要的值是错误消息。我怎么才能得到它?

时间:2017-10-05 17:11:29

标签: javascript jquery get console.log

我发出了一个get请求,它失败了,我看着控制台,我需要的东西就在那里显示。我知道,这听起来很奇怪,但它正在发生。如果我可以获得该值,则可以采用解决方法。

我的目标是什么?我试图解决SoundCloud URL,这些URL在使用API​​时会随机决定抛出403这个已知问题。

但是,我注意到我需要的值(曲目ID)显示在错误中!

enter image description here

红色错误文本" GET https://api.soundcloud.com/tracks/1848538.json?client_id=17a992358db64d99e4923 ... 403(禁止)具有我需要的值,即" 1848538"。

因此错误为我提供了我需要的内容并将其显示在控制台中。

我如何获得它?

1 个答案:

答案 0 :(得分:1)

假设您对返回错误的网址进行了ajax调用,您可以使用ajax的error属性来检索返回的网址。

然后使用RegExp进行简单测试以检索曲目ID。

代码假定返回的URL是您想要的。



$.ajax({
    type: 'get',
    url: 'https://api.soundcloud.com/tracks/1848538.json?client_id=17a992358db64d99e4923',
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false,
    beforeSend: function(jqXHR, settings) {
        jqXHR.url = settings.url;
    },
    error: function(jqXHR, exception) {
        var testUrl = jqXHR.url;
        // Do a match to retrieve the track id 
        var trackId = testUrl.match(new RegExp('/tracks/' + "(.*)" + '.json?'));
        alert(trackId[1]);
    }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;