У меня есть вызов getJSON, который необъяснимо не работает. Идея заключается в том, что вы нажимаете, чтобы отправить комментарий, URL-адрес получает удар, который определяет, является ли комментарий в порядке или имеет в нем озорные слова. Ответ приведен в форме JSON.getJSON не работает, 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 BLOCK, которые рассылает/Считывает ОТВЕТ:
$('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"]}}]
Он возвращается как пример применения/json. Он проверяется в JSONLint. Я также попытался добавить пару функций AJAX, чтобы попытаться поймать ошибки, и они оба молчат. Я вижу запрос, отправляемый в Firebug, и возвращаюсь как ответы о статусе 200, которые проверяются в JSONLint и которые я могу хорошо отслеживать на вкладке JSON ответа. Если я поставил предупреждение перед getJSON, он запускается; это просто, что внутри ничего не работает. Я также обнаружил, что если я изменю .getJSON на .get, предупреждения будут запущены, что говорит о чем-то с JSON. Я не в курсе, что может быть проблемой. Использование Firefox 3.0.13.
Пожалуйста, сохраняйте Юрис идемпотент. Даже аякс. Это должно использоваться '$ .post'. Когда вы этого не сделаете, это на самом деле нарушение спецификации HTTP. Http://www.w3.org/2001/tag/doc/whenToUseGet.html#safe –