【发布时间】:2013-10-15 08:39:53
【问题描述】:
我正在本地尝试让 JSONP 给我一个正确的响应并将其传递给我的回调函数 jsonp_callback。使用代码来自:How do I set up JSONP?
header('content-type: application/json; charset=utf-8');
$data = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo $_GET['jsonpCallback'] . '('.json_encode($data).')';
和
$.ajax({
url: 'jsonp-response.php',
dataType:'jsonp',
jsonp: 'jsonp_callback',
success: function (r){
console.log(r);
}
});
function jsonp_callback (r){
console.log('jsonp_callback:',r);
}
到目前为止,我收到的响应如下:
jQuery1102035954900085926056_1381230228656({"a":1,"b":2,"c":3,"d":4,"e":5})
查看Testing a static jsonp response 的第一个答案,我认为我做对了,但我不确定为什么 jQuery 给了我一个唯一的字符串。
如何让我的回复看起来像这样?
jsonp_callback({"a":1,"b":2,"c":3,"d":4,"e":5})
【问题讨论】:
-
您的响应是否可能是字符串而不是 JSON 对象?可以查一下吗?
-
成功函数返回一个对象
-
对不起,我误读了您的初始帖子。我现在看到了。我不熟悉设置
jsonp属性,但是您是否在success属性中尝试了以下操作?success: function (r){ jsonp_callback(r); } -
将 jsonp_callback(r) 包含在成功中会起作用。
标签: javascript jquery ajax jsonp