私はajax呼び出しを行い、Soundcloud APIからJSON応答を取得しています。私が抱えている問題は、アクセスするためにいくつかのトラックが禁止されている(エラー403)ということです。しかし、私はまだGETリクエストが終わったURLを取得したいと思っています。それは、取得したいトラックIDを保持しているからです。ここでは、コードです:Ajaxは403エラーからリダイレクトURLを取得します
function getSoundcloudId(url, callback) {
$.ajax({
type:"GET",
url: 'https://api.soundcloud.com/resolve.json?url=' + url + '&client_id=6d5bc62a483dce12f6f1d01bd93a0608',
dataType: "text",
success: function(data) {
var json = $.parseJSON(data);
callback(json);
},
complete: function(xhr, textstatus) {
console.log(textstatus);
},
error: function(jqXHR, status, error) {
console.log(jqXHR.getAllResponseHeaders());
},
});
}
私は試しとnullを返し、私は新しいリダイレクトされたURLを表示するXHRレスポンス内で何かを見つけることができませんヘッダーから場所を取得しようとしてきました。 Chromeのコンソールでは、リダイレクトされたURLで私のウェブページが禁止されていると警告していますが、それが助けになるかどうかはわかりませんが、それが見つかると怒っていました。
Chrome 403 Response with redirect URL
私は特定のトラックの後にいるので、認証が必要です。私は大部分のトラックで作業していますが、禁止されている403を返すトラックがいくつかあります。そこからリクエストする別のURLがある場合、ストリームURLを持つJSONが返されます。あなたは https://api.soundcloud.com/resolve.json?url=https://soundcloud.com/therealpressplay/sevenyears&client_id=6d5bc62a483dce12f6f1d01bd93a0608 をしようとするとあなたはそこから403応答を取得し、あなたは、URLを交換する場合別のトラックでは問題ありません。私はその応答からリダイレクトされたURLを必要としています。 – Jordan