サーバー側のコードから意図的に失敗してエラー処理イベントをトリガーするajaxリクエストがあります。ここで試行したURLを取得できるかどうか疑問に思いました。そのURLを取得してハイパーリンクに挿入し、リクエストを再試行したいと思います。
これは可能ですか?
[〜#〜] edit [〜#〜]FireBug
を介して試行されたURL要求を確認し、console.dir()
を介してjqxhrオブジェクトを検査できます。呼び出そうとしたURLを特定するのに役立つものが見つからないようです。理想的には、引数からこれを取得することを望んでいたグローバル変数を格納したくない。
よろしくお願いします、O。
$.ajax({
type: 'get',
url: 'somewhere/foo',
context: this,
success: this.mySuccess,
error: this.myError,
cache: false
});
myError = function (jqXhr, textStatus) {
alert(jqXhr.url); //Get url of failed request and inject it into hyper link?
};
url
を変数に保存します。そして、あなたはそれをエラー関数で使うことができます。明らかに、URLはajaxリクエストのurlパラメーターで指定されたものと同じになります
var url = 'somewhere/foo';
$.ajax({
type: 'get',
url: url,
context: this,
success: this.mySuccess,
error: this.myError,
cache: false,
error: function(jqXHR, exception) {
//use url variable here
}
});
別のオプションはこれである可能性があります
$.ajax({
type: 'get',
url: 'https://google.com',
context: this,
success: this.mySuccess,
error: this.myError,
cache: false,
beforeSend: function(jqXHR, settings) {
jqXHR.url = settings.url;
},
error: function(jqXHR, exception) {
alert(jqXHR.url);
}
});
最も簡単な方法は次のとおりだと思います。
this.url
これは、url属性を持つajaxオブジェクトインスタンスにバインドする必要があります。
最も簡単なのは、エラーコールバックコンテキストのajax設定( JQueryAjaxSettings )オブジェクトを介してURLにアクセスすることです。
$.ajax({
type: 'get',
url: 'somewhere/foo',
error: function() {
alert(this.url);
}
});