У меня есть вызов getJSON, который необъяснимым образом не работает. Идея состоит в том, что вы нажимаете кнопку, чтобы отправить комментарий, URL-адрес получает доступ, который определяет, является ли комментарий в порядке или содержит непослушные слова в нем. Ответ дается в форме JSON.
Вот спаренный JS, который генерирует вызов. Комментарий и URL уже находятся на странице, он захватывает их и обращается к URL:
ФОРМА HTML:
<fieldset id="mg_comment_fieldset" class="inlineLabels">
<div class="ctrlHolder">
<textarea id="id_comment" rows="10" cols="40" name="comment"></textarea>
</div>
<div class="form_block">
<input type="hidden" name="next" value="" />
<input id="mg_comment_url" type="hidden" name="comment_url" value="" />
<input id="mg_comment_submit" type="submit" value="Remark" />
</div>
</fieldset>
КОНКРЕТНЫЙ БЛОК JS, КОТОРЫЙ ОТПРАВЛЯЕТ / ПРОЧИТАЕТ ОТВЕТ:
$('input#mg_comment_submit').click(function(){
var comment = $("textarea#id_comment").val();
var comment_url = $('input#mg_comment_url').val();
$.getJSON(
comment_url+"?callback=?&comment="+comment+"&next=",
function(data){
console.log(data);
alert(data);
});
});
Ответ JSON:
[{"errors": {"comment": ["Weve detected that your submission contains words which violate our Terms and Conditions. Please remove them and resubmit test"]}}]
Он возвращается как mimetype application / json. Это проверяется в JSONLint. Я также попытался добавить пару функций AJAX, чтобы попытаться перехватить ошибки, и они оба молчат. Я вижу, как запрос отправляется в Firebug и возвращается как ответы статуса 200, которые проверяются в JSONLint и которые я могу очень просто просмотреть на вкладке JSON ответа. Если я ставлю предупреждение перед getJSON, оно запускается; просто внутри ничего не работает. Я также обнаружил, что если я изменяю .getJSON на .get, предупреждения запускаются, предполагая, что это что-то с JSON. У меня нет идей относительно того, в чем может быть проблема. Использование Firefox 3.0.13.