javascript - JSONP 回调返回错误

标签 javascript php jquery json ajax

我正在尝试学习 JSONP。根据我在网上的研究,我了解到它是带有回调的调用函数。除此之外,其他所有内容(数据处理方式/数据格式)都类似于 JSON?

我只是在玩 JSONP,如下所示。但它返回错误,请详细解释一下......

脚本.js

function test(){
jQuery.ajax({
  url: "/plugins/system/chat/jsonstr.php",
  dataType: "jsonp",
  jsonpCallback: "logResults"
});

jsonstr.php

logResults(){
    $arr = '[{
        "title": "keren",
        "picture": "http://something.png",
        "id":1
    }, {
        "title": "diana",
        "picture": "/plugins/system/conversekit/conversekit/images/avatar.png",
        "id": 2
    }]';
    echo $arr;
}

我希望这个调用返回 json 对象,以便我可以在测试的成功函数中操作它。但抛出如下错误:

<br />
<b>Parse error</b>:  syntax error, unexpected '{' in <b>C:\projects\easysocial.com\plugins\system\conversekit
\jsonstr.php</b> on line <b>14</b><br />

控制台中的url是这样的:

GET http://mysite.localhost.com/plugins/system/chat/jsonstr.php?callback=logResults

最佳答案

logResults() 是 JavaScript 回调,而不是 PHP 函数。 jsonstr.php 应该只返回有效的 JSON。

所以 jsonstr.php 应该是这样的

<?php

 $arr = [
            [
                'title' => "keren",
                'picture' => "http://something.png",
                'id' => 1,
            ],
            [
                'title' => "diana",
                'picture' => "/plugins/system/conversekit/conversekit/images/avatar.png",
                'id' => 2,
            ],
        ];

echo(json_encode($arr));

和 Script.js

function logResults() {
    console.log('ajax done');
}

function test(){
    jQuery.ajax({
      url: "/plugins/system/chat/jsonstr.php",
      dataType: "jsonp",
      jsonpCallback: logResults
    });
}

关于javascript - JSONP 回调返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38260943/

相关文章:

javascript - 带有 json 数据源的 jQuery UI Datepicker 中的事件

javascript - 使 Discord 机器人命令不区分大小写?

javascript - 验证表单 : Return false not possible/Always starts the action of the form

php - Yii2,登录后重定向。避免 Controller \ Action \行为

php - Laravel 5 - 单元测试 - 状态码 500,预期 200

javascript - jquery 追加大写标签

jquery - 应用引导类时通过 jQuery 切换宽度动画

javascript - Ajax 请求不返回所有 JSON - 无法加载资源 : the server responded with a status of 409 (Conflict)

javascript - 从mysql数据库发送数据到客户端页面而不刷新页面(超时)

php - 我如何在 PHP 中找到所有加起来等于给定总和的 N 个单位数、非重复数字集?