Я пытаюсь добавить сообщение jQuery к некоторому JavaScript на веб-странице. Вся страница состоит из нескольких шаблонов Velocity. Все было хорошо, пока я не попытался добавить сообщение jQuery, теперь я получаю:
org.apache.velocity.exception.ParseErrorException: Encountered "," at line 282, column 24 of /WEB-INF/velocity/www/comments.vm
Was expecting one of:
"(" ...
...
...
~~~snip~~~
Строка 282 - это $. Post (...
, а столбец 24 выглядит первым символом "," Изначально у меня был JSON в этой строке, но я переместил его вверх (в строку var myJSONObject ...
), поскольку я думал, что ошибка связана с недопустимым JSON (вкладки в начале строки давали вводящий в заблуждение номер столбца).
var myJSONObject = {"body": "", "action": "postcomment", "submitted": "true", "ajax": "true"};
myJSONObject.body = $("body").val();
$.post("$!{articleurl}", myJSONObject, function(result){
btn.textContent='Comment sent successfully.';
});
Незначительное обновление
Я изменил следующие строки:
var url = "$articleurl";
$.post(url, myJSONObject, function(result){
~~~snip~~~
Исключение синтаксического анализа по-прежнему сосредоточено на первом «, ». Я предполагаю, что проблема в том, что Velocity считает он должен иметь возможность разрешать $ .post - хотя на самом деле это jQuery. Я без проблем использовал jQuery в других шаблонах Velocity VM. Есть ли способ заставить Velocity игнорировать определенные строки / операторы при синтаксическом анализе?
Обновление 2
Я нашел эту ссылку об экранировании ссылок в Velocity, но это не решает мою проблему. Добавление « \ » перед $. Post
дает мне то же самое ror, но столбец на один лишний из-за символа, добавленного в начале строки.