У меня есть $ .ajax вызов на который выглядит следующим образом:
<script type="text/javascript">
$(document).ready(function() {
$('#add_com_frm').submit(function (e) {
e.preventDefault();
var $btn_c = $('#add_com_but').button('loading');
tinyMCE.triggerSave();
var data = {
"id": document.getElementById("id").value,
"body": tinymce.get('body').getContent()
};
$.ajax({
type: "POST",
url: 'https://something/test.php',
data: data,
dataType: 'json',
success: function(msg,string,jqXHR) {
alert(msg.test);
}
});
});
});
</script>
теперь есть что-то странное, что я просто не могу объяснить логически.
PHP сторона:
<?php
$id = $filter->purify($_POST['id']);
$body = $filter->purify($_POST['body']);
$today = date('d.m.Y');
$who = 'Someone';
$result = $db->insert_com($id, $body, $who, $today);
$list = array('test' => 'something');
$c = json_encode($list);
echo $c;
?>
Теперь, если я строка комментария // $ результат = $ db-> вставить [...] Я получил предупреждение от JQuery возврата msg.test, что ' что-то », и это работает, но по какой-то странной причине, когда я не комментирую эту строку, связанную с базой данных, даже если она не связана напрямую с возвращаемым json, она просто не работает и не отображается предупреждение. У меня нет логического объяснения этому, эта строка как-то испортила json encode, которая была возвращена при echo'ed, но почему? и как? Без понятия!
Добавить обработчик ошибок в вызов Ajax. Посмотрите, в чем проблема – epascarello
Hmz, 200, неожиданный токен <- любая идея? – dunnoman
Проверьте ответ вызова Ajax на вкладке сети инструментов разработчика. Это не будет действительным JSON. – Andreas