JSON意外的标识符

时间:2013-10-07 20:28:26

标签: php jquery jsonp modx

我已经构建了一个搜索我正在使用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) . ')';

1 个答案:

答案 0 :(得分:1)

在浏览器中使用dev工具查看JSONP响应,以确定它是有效还是可能引发某种PHP警告/错误。

在Chrome中,转到查看&gt;开发人员&gt;开发人员工具,打开网络选项卡,然后启动您的JSONP请求。然后在左侧窗格中选择“/ pq2”,然后单击右侧的“预览”或“响应”选项卡以查看响应的内容。

如果问题不明显,那么将它发回这里。

相关问题