jQuery.ajax()のリクエストが返らない
下のような通信処理を書いています。
var returnObj = null;
var errorMsg = '';
function getAjaxHttpRequest(prms)
{
returnObj = null;
if (prms["sendXml"] == null)
{
prms["sendXml"] = "";
}
jQuery.ajax({
contentType: prms["contentType"]
, type: prms["type"]
, url: prms["url"]
, timeout: prms["timeout"]
, cache: prms["cache"]
, async: false
, processData: false
, data:
"formId=" + prms["formId"]
+ "&submitStatus=" + prms["submitStatus"]
+ "&appId=" + prms["appId"]
+ "&data=" + prms["sendXml"]
, success: function(data, dataType)
{
errorMsg = "";
}
, error: function(XMLHttpRequest, textStatus, errorThrown)
{
errorMsg = textStatus + ' - ' + errorThrown;
}
, complete : function(xmlHttpRequest, textStatus) {
var READYSTATE_COMPLETED = 4;
if( xmlHttpRequest.readyState == READYSTATE_COMPLETED ) {
var HTTP_STATUS_OK = 200;
if( xmlHttpRequest.status == HTTP_STATUS_OK ) {
returnObj = {
resultCode: 'success'
, data: xmlHttpRequest.responseText
};
} else {
if (xmlHttpRequest.responseText == '') {
returnObj = {
resultCode: 'error'
, textStatus: xmlHttpRequest.status + " - " + xmlHttpRequest.statusText
, responseText: errorMsg
};
} else {
returnObj = {
resultCode: 'error'
, textStatus: xmlHttpRequest.status + " - " + xmlHttpRequest.statusText
, responseText: xmlHttpRequest.responseText
};
}
}
} else {
returnObj = {
resultCode: 'error'
, textStatus: xmlHttpRequest.readyState + " - " + xmlHttpRequest.status + " - " + xmlHttpRequest.statusText
, responseText: xmlHttpRequest.responseText
};
}
errorMsg = '';
}
});
return returnObj;
}
まれに最後のreturnObjがnullで返ってくるようです。なぜでしょうか?
何が起きている可能性があるでしょうか。
jquery-1.4.3です。
お礼
早速の回答ありがとうございます。 open("GET", url, false); とすることで同期になるとのことで試してみたのですが、 send(null); は実行されるようになりましたが、 エラーが返されます。 NetworkError: A network error occurred. というメッセージが得られるのですが、何が悪いのか わかりません。 非同期で処理していたときは open() の直後に終わっていて send() までいきませんでしたから、同期に変更したことの 効果はあったんじゃないかと思いますが、サーバに リクエストが届かない状況は変わりませんでした。。。