JQueryでJSON形式でPOSTの同期通信($.postJsonAjaxSync())

提供:wiki - PCスキルの小技・忘却防止メモ
移動: 案内, 検索

jQueryでJSON形式でPOSTの同期通信($.postJsonAjaxSync())。$.ajaxの部分を作りこめば色々とできる。

ソース

postJsonAjaxSync: function postJsonAjax(url, data, timeout) {
	/// <summary>
	/// $.ajax()のJSON・POST限定・同期通信
	/// </summary>
	
	timeout = timeout | 5000;
	
	$.ajax({
		type: "POST",
		url: url,
		dataType: "json",
		data: data,
 		async: false,
 		timeout: timeout,
		success: function(data){
			result = data;
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			result = errorThrown;
		}
	});
	
	return result;
}

別ファイルでするなら「function($) {$.extend(){}}」内にいれておく。

使い方

タイムアウトを特に指定しない場合(5000ミリ秒でOKな場合)

var data = $.postJsonAjaxSync("xxx.php", "kushi=zebra");

タイムアウトを8000ミリ秒にしたい場合

var data = $.postJsonAjaxSync("xxx.php", "kushi=zebra", 8000);

第2引数は配列(オブジェクト?)でもOK

var args = [];
args.kushi = "zebra";
var data = $.postJsonAjaxSync("xxx.php", args);

関連項目