Странная проблема с постом jQuery ajax - PullRequest
0 голосов
/ 01 октября 2009

У меня очень странная проблема, и эта проблема возникает очень редко, и это тоже в нашей производственной среде.

Окр. Производства настройка есть,

Веб-сервер Apache в качестве переднего слоя Apache Tomcat 6.0 в качестве сервера приложений (нравится с веб-сервером Apache через mod_jk)

У меня есть пользовательский RPC-компонент на основе Ajax, в котором мы используем jQuery для вызова ajax. Данные передаются методом POST.

Данные на стороне клиента (объекты javascript) отправляются на сервер в формате JSON, а на стороне сервера они десериализуются в объекты java.

вызов RPC выполняется путем предоставления следующей информации,

var jsonParamObj = new Object(); 
jsonParamObj.param0 = objParam0; 
var params = new Object(); 
params.**jsontext**=**toJsonString**(jsonParamObj);

где jsontext содержит реальные данные для передачи. Я использую функцию javascript toJsonString, доступную как json-скрипт с открытым исходным кодом (ранее использовался JSON.stringify, но у меня была такая же проблема).

Ниже приведен вызов jQuery,

$.ajax({async:async,
 data:params,
 dataType:"json",
 type:"POST", 
 url:this.ajaxAction+qs,
 contentType:"application/x-www-form-urlencoded; charset=UTF-8",
 error:function (XMLHttpRequest, textStatus, errorThrown) 
  { 
   alert('Connectivity Issue : '+textStatus + ' Error : '+errorThrown + ' Response : '+XMLHttpRequest.responseText);
  }, 
 success:function(jsonobj){
  if(jsonobj.JSON.ajaxSysError)
  {
   alert(jsonobj.JSON.ajaxSysError.message); 
   return;
  }

  // do other work
 }

});

Теперь проблема иногда в том, что данные, отправленные в виде параметров, не доходят до сервера (не для Apache, а также для Tomcat). Я включил максимальный уровень многословия в журналах, однако, любые данные, которые он отправляет через строку запроса (см. qs ) достигает сервера.

Клиентский браузер IE 7 (Windows XP Media Edition).

Можете ли вы высказать некоторые мысли, которые помогут мне в устранении этой проблемы.

Спасибо за чтение этого длинного вопроса.

Jatan

1 Ответ

1 голос
/ 01 октября 2009

Установите Fiddler и посмотрите HTTP-запрос, который отправляет IE.

Кроме того, поместите вызов ajax в блок try / catch и проверьте, нет ли у вас ошибок Javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...