2012-05-21 3 views
0

Итак, у меня есть сообщение ajax, которое вызывает службу и возвращает объект, который я хочу проанализировать при успешном выполнении.JQuery Ajax Post -> Работает только тогда, когда я прохожу через вызов ajax и только несколько раз ....... Любые идеи?

Я запускаю это в vs2010, он работает только, когда я просматриваю почтовый код ajax, и он работает только часть времени.

Этот вызов в основном идентичен другим страницам, которые я сделал, поэтому я действительно обеспокоен тем, почему это не работает.

$.ajax({ 
       type: "POST", 
       url: webMethod, 
       data: parameters, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (obj) { 
        alert("Success"); 
        parseStart(obj.d, id, idnum, parseType); 
       }, 
       error: function (e) { 
        alert("Failure. :" + e); 
       } 
      }); 

Это действительно стандарт, я не уверен, почему он это делает. Я просто надеюсь, что кто-то испытал нечто подобное раньше. Как я уже сказал, это происходит только в том случае, если я пройду через код ajax, а затем достигнет успеха. Если я не пройду, это будет как будто никогда не ударит успех или неудачу ..... Это действительно странно. (поэтому я не вижу своих предупреждений и т. д., если я не нахожу это). У меня было предположение, что это был, возможно, размер моего объекта, который я возвращал с моей службы, поэтому я подрезал это до нуля, и это не помогло помогите.

Любые мысли на этом направлении очень ценятся. Сейчас я в тупике.

+0

Я считаю, что я обнаружил, что это происходит из-за сообщения, которое происходит во внутреннем методе, вызываемом в веб-методе, в столбце, в котором я отправляю другой вопрос относительно этого, поскольку я не могу удалить этот вопрос. –

+0

И не хотел создавать бессвязный вопрос, не относящийся к теме. –

ответ

0

Хорошо, после долгого устранения неполадок. Я переключил вызов кнопки на тело onload в зависимости от щелчка кнопки, после этого он работает без ошибок. Это было связано с тем, что я использовал кнопку asp, которая вызывала обратный вызов при нажатии на мой пост. Затем я удалил свои кнопки asp и заменил их кнопкой ввода.

0

Возможно, сервер не возвращает 200. Возможно, он возвращает 304 не измененную или временную переадресацию.

См Difference between .success() and .complete()?

.success() только вызывается, если ваш веб-сервер отвечает заголовок HTTP 200 OK - в основном, когда все в порядке.

Однако .complete() всегда будет вызываться независимо от того, если вызов Ajax был SUC

+0

Хорошая идея, добавлена ​​.complete() и до сих пор не получает предупреждения, которое я там предоставил. –

+0

Что говорит скрипач? – FlavorScape

+0

Наконец-то я понял, что мой ответ ниже. Нельзя отметить его в течение 21 часа. –

0

Я думаю, я знаю, что это такое. Вызов ajax - асинхронный, верно? Так что потребуется время, чтобы получить ответ. Однако, если этот вызов сгенерирован с помощью кнопки «Ссылка» или «Форма», и вы не вернете здесь значение false, тогда произойдет нормальное получение или сообщение. Просто верните false после вызова $ .ajax();

$.ajax({ 
       type: "POST", 
       url: webMethod, 
       data: parameters, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (obj) { 
        alert("Success"); 
        parseStart(obj.d, id, idnum, parseType); 
       }, 
       error: function (e) { 
        alert("Failure. :" + e); 
       } 
      }); 
return false; 
+0

Пробовал это и не повезло. –

+0

Вы пытались использовать firebug, чтобы узнать, что происходит на сервере? что, если вы ставите предупреждение перед методом $ .ajax(), будет ли это вызвано? –

+0

Да, я сделал это, я получил предупреждение. Я пробовал IE шаг, и вот как я понял, что если я пройду через весь вызов ajax, который он иногда будет работать. Это действительно не имеет смысла .... –

 Смежные вопросы

  • Нет связанных вопросов^_^