У меня есть проблема, которая возникает в 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>
ВЫЗЫВАЕТСЯ С ЗАГРУЗКОЙ ФАЙЛА (ПРИЧИНЫ СБОЯ):
ВЫЗЫВАЕТСЯ БЕЗ ЗАГРУЗКИ ФАЙЛА (РАБОТАЕТ):
КАК ВЫГЛЯДИТ СБОЙ В IE:
КАК ВЫГЛЯДИТ СБОЙ В FF: