При вызове jquery $ .ajax () json в файл * .js браузер запрашивает «сохранить / открыть» - PullRequest
0 голосов
/ 09 мая 2009

Я могу отправлять запросы $ .ajax () на URL, которые имеют расширение .js, когда я использую {... 'dataType': 'script' ...}. Однако, когда я использую {... 'dataType': 'json' ...}, браузер (пока Opera и FF, но я держу пари, что он универсален) просит сохранить / открыть результаты запроса.

Обратите внимание, что мой обратный вызов 'success' работает нормально и просто использует полученный объект json.

Мой вопрос заключается в том, нужно ли мне просто удалить расширение * .js из ресурса и передать параметр 'json = true'? Или есть удобный способ остановить браузер от рендеринга / сохранения / открытия результата? (Под удобной я имею в виду, конечно, не то, что каждый пользователь должен установить в своем браузере.)

Также обратите внимание, что я использую Rails, поэтому проблема маршрутизации порядка заголовков не позволяет мне использовать заголовок Accept, чтобы это исправить.

Ответы [ 3 ]

4 голосов
/ 09 мая 2009

Я могу ошибаться, но я подозреваю, что вы забыли вернуть false из вашего обработчика событий. Таким образом, ваш запрос распространяется на обработчик по умолчанию. Или, как указал nickf, ошибка, приводящая к сбою вашего скрипта. Попробуйте обернуть ваш код в try catch и посмотреть, нет ли ошибок:

try {
   // your code
} catch(e) {
   alert(e);
}
1 голос
/ 09 мая 2009

О. Это бунт. По-видимому, важно не комментировать утверждение «верните ложь»; в конце ваших обработчиков событий.

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

Оставайтесь с нами, чтобы получить совет 1337 h4x0r в будущем!

0 голосов
/ 09 мая 2009

Что ж, правильное расширение файла для файла JSON: .json, а не .js. Вы пробовали это?

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