Многостраничная форма POST заставляет Firefox запрашивать сохранение JSON

У меня есть проблема, которая возникает в IE 8 и Firefox 6.0, но не в Chrome 17.0.9. Когда я публикую frmMain ниже, я отправляю его на тестовую страницу, которая просто возвращает простую строку JSON с ContentType: application/json; кодировка=utf-8. Проблема в том, что IE и FF предложат мне сохранить JSON, возвращаемый с сервера, и не использовать метод успеха в моем коде jquery.Но странно, если я опускаю в отправленной форме, то IE и FF непредлагают мне сохранить мой JSON и мой код успеха jquery срабатывает.

Получается, что размещенный контент имеет отношение (в IE и FF) к тому, как браузер реагирует на возвращенную полезную нагрузку. С помощью Fiddler я убедился, что в каждом случае возвращаемая полезная нагрузка одинакова.

Есть идеи?

НАЙДЕНО РЕШЕНИЕ:См. мой ответ ниже. Из того, что я могу собрать, «текст/html» — это лучший тип содержимого для разных браузеров, возвращаемый при выполнении jquery/ajax/json.

КОД

<script>
     $(function () {
         $('#btnSave').click(function () {
             $('#frmMain').ajaxSubmit({
                 success: function (data, statusText, xhr, $form) {
                     alert('test success');
                 },
                 fail: function (data, statusText, xhr, $form) {
                     alert('test fail');
                 }
             });
         });
     });
</script>
<body>
     <form id='frmMain' action='/test' method='post'>
              <!--Omit the file input below to make it work-->
          file: <input name='File_1' type='file' /><br />

          name: <input name='json' value='{"id":5}' /><br />

          <input type='button' id='btnSave' value='Save' />
     </form>
</body>

ВЫЗЫВАЕТСЯ С ЗАГРУЗКОЙ ФАЙЛА (ПРИЧИНЫ СБОЯ): enter image description here

ВЫЗЫВАЕТСЯ БЕЗ ЗАГРУЗКИ ФАЙЛА (РАБОТАЕТ): enter image description here

КАК ВЫГЛЯДИТ СБОЙ В IE: enter image description here

КАК ВЫГЛЯДИТ СБОЙ В FF: enter image description here

6
задан sisdog 7 April 2012 в 04:51
поделиться