Мой вопрос об ошибке, которую я имею, когда я использую jQuery.ajax в моей функции javascript. Я искал и нашел аналогичный вопрос, но ни один из этих вопросов не помог мне.
Итак, что действительно странно, так это то, что он работал раньше. Я провел несколько дней, работая над проблемами перевода с UTF-8, и когда я попробовал это снова, он уже работал. Я не вижу, что случилось, поэтому, может быть, вы поможете мне разобраться.
Вот код из моего действия контроллера, который вызывается для ajax.
$project =$_GET['project']; //Call private function getQuota $quotaTab = $this->getQuota($project); $this->_helper->getHelper('viewRenderer')->setNoRender(); Zend_Layout::getMvcInstance()->disableLayout(); // Encode data to return $return = array( 'quota' => $quotaTab[0], 'usedSpace' => $quotaTab[1], 'usedPercentage' => $quotaTab[2] ); $return = Zend_Json::encode($return); $this->getResponse()->setBody($return);
И это моя функция javascript, содержащая функцию ajax
function changeQuota() { var fileset = document.getElementById('fileset'); jQuery.ajax({ url: '/filesets/quota/', data: ({ project: fileset.value, ajaxCall: true}), success: function(response) { //Decode the JSON response var result = response.evalJSON(); // Set the new value of current quota $('currentQuota').value = result.quota; var strUsed = <?php echo "' ".$this->translate("used")."'";?>; $('usedQuota').innerHTML = result.usedPercentage.concat(strUsed); var suggestQuota = Math.round(parseFloat(result.quota) + parseFloat(result.quota/10)); $('quota').value = suggestQuota; $('usedSpace').value = Math.round(result.usedSpace); } }); }
Поэтому я отлаживаю свой сценарий с помощью Firebug, и точная ошибка, которую он возвращает, это «JSON.parse: неожиданный символ без пробелов после данных JSON
return JSON.parse (json); prototype.js (строка 720) "
У меня есть эта ошибка в обеих функциях, когда я использую jQuery.ajax. Ошибка при попытке evalJSON ().
Любая идея, почему она больше не работает? Может быть, из-за кодирования (в настоящее время UTF-8) файлов?
Заранее спасибо за вашу помощь !
PS Может быть, это не связано, но когда я открываю prototype.js с Zend Studio, у меня есть некоторые предупреждения и 2 ошибки («отсутствующая точка с запятой» в строке 4235 и «Синтаксическая ошибка на токене», «Ожидание» в строке 4000 Когда я заметил это, я загрузил последнюю версию, и она не изменилась.
Вы можете обрезать финальную строку перед ее отправкой? Если это не так, убедитесь, что он закодирован без указания байтового заказа, особенно если вы используете соловерку с UTF-8.
jQuery имеет довольно строгие настройки для данных JSON. Вы уже пытались проверить свой JSON, например, с помощью JSONLint