Я построил поиск сайта, над которым я работаю, используя JSONP. Мой код приведен ниже:JSON-Неожиданный идентификатор
$(document).ready(function() {
function pSearch() {
var url = "/pq2";
$.getJSON(url + "?callback=?", $("#searchform").serialize(), function(data) {
$("#searchResults").empty();
console.log(data);
$.each(data, function(index, value) {
$("#searchResults").append('<a href="[[~' + value.id + ']]"><h2>' + value.pagetitle + '</h2></a>');
})
})
}
$("select").change(pSearch);
});
Пользователи выбирают термины из поля множественного выбора, и возвращается список страниц, соответствующих этим условиям. Некоторые термины, работают отлично, другие бросают следующую ошибку в Chrome:
Uncaught SyntaxError: Unexpected identifier
Я запутался, что бы привести некоторые результаты работы, и другие, чтобы бросить эту ошибку. Спасибо за помощь!
Edit-Генерирующая JSONP файл PHP создает массив и следующая строка генерирует JSONP (CMS является MODX):
$final = array();
foreach ($collection as $c) {
$allowedTvNames = array('tv_names');
$templateVars = $modx->getCollection('modTemplateVar', array('name:IN' => $allowedTvNames));
$a = $c->toArray();
foreach ($templateVars as $tv) {
$a[$tv->get('name')] = $tv->renderOutput($c->get('id'));
}
$final[] = $a;
}
echo $_GET['callback'] . '(' . json_encode($final) . ')';
В какой строке возникает ошибка? – ComFreek
Мое предположение - ответ от php не всегда действителен jsonp. можете ли вы показать нам, как генерируется ответ? –
@KevinB Конечно, я добавил немного о том, как я создаю JSONP. У меня такое чувство, что вы правы, как – Vecta