サーバーにAjaxリクエストを送信し、JavaScriptオブジェクト内のsuccess関数でデータを返すことに関しては、やや厄介な問題があります。私は同様の質問を検索しましたが、実際に私のものと同じ方法のものはありませんでした。
たとえば、オブジェクト内でリクエストを送信するための次のコードがあります。
function SomeObject ( someVar )
{
var someVar = someVar;
}
SomeObject.prototype.sendRequest = function ()
{
$.ajax(
{
url : "somePage.php",
type : "POST",
data :
{
someVar : someVar
},
success : this.parseSuccess
} );
};
SomeObject.prototype.parseSuccess = function ( data )
{
if ( data === "success" )
{
this.proceed(); // Error
}
else
{
alert( "Server failed request." );
this.proceed();
}
};
SomeObject.prototype.proceed = function ()
{
// Do something else
};
インスタンスではないthis.proceed()
ため、失敗することはわかっています。this
SomeObject
それでも、リクエストが完了した後、どうすれば効率的にオブジェクトを参照できますか?私は自分が望むことを達成するために次のことを行うことができると思いましたが、それは適切ではないと感じており、Ajax呼び出しを処理するためのより良い方法が欲しいです:
SomeObject.prototype.sendRequest = function ()
{
var me = this;
$.ajax(
{
url : "somePage.php",
type : "POST",
data :
{
someVar : someVar
},
success : function ( data )
{
me.parseSuccess( data ); // Will work
}
} );
};
この件について助けてくれてありがとう。