我已经使用 JSONP 搜索了我正在开发的网站。我的代码如下:
$(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 中引发以下错误:
未捕获的 SyntaxError:意外的标识符
我很困惑什么会导致某些结果起作用,而其他结果会引发此错误。感谢您的帮助!
编辑—生成 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) . ')';