我发出了一个get请求,它失败了,我看着控制台,我需要的东西就在那里显示。我知道,这听起来很奇怪,但它正在发生。如果我可以获得该值,则可以采用解决方法。
我的目标是什么?我试图解决SoundCloud URL,这些URL在使用API时会随机决定抛出403这个已知问题。
但是,我注意到我需要的值(曲目ID)显示在错误中!
红色错误文本" GET https://api.soundcloud.com/tracks/1848538.json?client_id=17a992358db64d99e4923 ... 403(禁止)具有我需要的值,即" 1848538"。
因此错误为我提供了我需要的内容并将其显示在控制台中。
我如何获得它?
答案 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;