2013-10-07 3 views
0

Я построил поиск сайта, над которым я работаю, используя 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) . ')'; 
+1

В какой строке возникает ошибка? – ComFreek

+0

Мое предположение - ответ от php не всегда действителен jsonp. можете ли вы показать нам, как генерируется ответ? –

+0

@KevinB Конечно, я добавил немного о том, как я создаю JSONP. У меня такое чувство, что вы правы, как – Vecta

ответ

1

Использование Dev инструментов в вашем браузере, чтобы увидеть ответ JSONP, чтобы определить, если он либо действителен, либо, может быть, вызывает какую-либо ошибку/ошибку PHP.

В Chrome перейдите в меню «Просмотр»> «Разработчик»> «Инструменты разработчика», откройте вкладку «Сеть», а затем запустите свой запрос JSONP. Затем выберите «/ pq2» в левой панели и нажмите вкладки «Предварительный просмотр» или «Ответ» справа, чтобы узнать, что такое ответ.

Опубликовать его здесь, если это не так очевидно, что проблема.

Смежные вопросы