2015-09-11 4 views
1

whats hapenning - это то, что мой запрос ajax случайным образом терпит неудачу, и я не знаю почему.Ajax Request Randomly Fails

Я тестировал только в хроме, и когда обратный вызов ошибки вызван, контроллер возвращается успешно, поэтому я думаю, что проблема не в стороне сервера. Но я не уверен. ошибка responseText в chrome пуста, поэтому у меня нет подсказок для устранения неполадок.

Это мой вызов Ajax. Я делаю неправильно, я не знаю.

$.ajax({ 
    type: "GET", 
    url: url, 
    data: { postalCode: postalCode }, 
    dataType: "json", 
    success: function (response) { 
     if (isPostBack != 'True') { 
      switch (response["Code"]) { 
       case "-1": 
        alert('msg 1.'); 
        break; 
       case "0": 
        alert('msg 2.'); 
        break; 
       case "1": 
        alert('msg 3.'); 
        break; 
       case "2": 
        alert('msg 4.'); 
        break; 
       default: 
        alert('unexpected value.'); 
      } 
     } 
    } 
}); 

Если нет, то какие могут быть наиболее вероятные причины? Я разрабатываю Asp.NET MVC для Sitefinity, и я только обнаруживаю эту проблему в этом ajax-запросе.

UPDATE:

Я обнаружил в браузере, что запрос не будет отменен. он успешно отправляется на сервер и отменяется во время выполнения кода. он не отменяется в определенной строке, потому что я прокомментировал строки, чтобы найти, какой из них вызывает проблемы, но был отменен независимо от строки кода. Затем я начал думать о тайм-ауте и добавил тайм-аут. сначала 3 секунды, чем 10 секунд. но проблема все еще была. это состояние запроса:

enter image description here

+3

Попробуйте добавить ошибку в AJAX, чтобы увидеть, если у вас есть выход там – Del

+0

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

+0

Hi Del. Обратный вызов ошибки не меняет результат, я все равно получаю ошибку. Zathrus Я ничего не вижу в журналах сервера. Однако я сделал новый вывод, запрос Ajax отменяется. Я обновлю поток – Nelssen

ответ

0

Проблема

я запрос Ajax был сделан из кнопки отправки, который отменил некоторые запросов.

я решить ее

  • скрывается кнопка
  • создание типа кнопки отправки = кнопка, которая делает Аякса вызов
  • на успех обратного вызова я нажмите скрытую кнопку, чтобы значения формы $ ("# btnsubmit"). Click();

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

Зачем ему нужно 20 секунд в первом запросе ajax?

Ну, что будет еще один приключение ..

+0

'on success callback i click the hidden button' ... вы можете просто« отправить »форму либо' $ ('form.some-form-selector'). Submit() 'или' document.forms [n ] .submit() '... – ankhzet

0

Предложив небольшое изменение:

$.getJSON(url, {"postalCode": postalCode}) 
.success(function (response) { 
    if (isPostBack != 'True') { 
     switch (response.Code) { 
     case "-1": 
      alert('msg 1.'); 
      break; 
     case "0": 
      alert('msg 2.'); 
      break; 
     case "1": 
      alert('msg 3.'); 
      break; 
     case "2": 
      alert('msg 4.'); 
      break; 
     default: 
      alert('unexpected value.'); 
     } 
    } 
}); 
+0

Привет ankhzet, спасибо, что представил мне этот способ выполнения запроса ajax. однако результат тот же. Я сделал новое обнаружение, что запрос отменен, я обновляю поток. – Nelssen

+0

показать исходный код, где вы обрабатываете '' Get', рекурсивно перенаправляется в ту же папку '/ Get', поэтому Chrome отменяет его? – ankhzet

+1

попробуйте 'chrome: // net-internals/# events' ссылку для полного следа ajax-вызова – ankhzet