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
我很困惑,什麼會導致一些成果的工作,和其他人拋出這個錯誤。感謝您的幫助!
編輯生成JSONP PHP文件生成一個數組,並以下線產生JSONP(CMS是鏌鋣):
$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