【发布时间】:2016-06-01 11:47:06
【问题描述】:
我有一个用 PHP 创建的 JSON API,它返回
?({"a":"b"})
当我输入时
"http://mylink.php?callback=?"
在浏览器中。但是,当我从桌面应用程序(使用 $.ajax)提供相同的链接时,不会返回结果。创建 JSON API 的 PHP 代码是
<?php
header('Content-Type: application/javascript'); // Also tried application/json
$results = array();
$results['a'] = 'b';
$encoded = json_encode($results);
$encoded_callback = '?' . '(' . $encoded . ')';
echo $encoded_callback;
return $encoded_callback;
?>
javascript代码只包含
$.ajax({
url:url,
dataType:"jsonp",
success:function(data){
... some printing ...
}
});
知道并且 当我使用另一个 JSON API(不是我创建的)尝试它时它工作正常。所以我认为问题出在我的 API 上。
怎么了?我觉得缺少某些东西以便可以保持通信,但我不知道是什么以及在哪一侧(服务器或客户端)。
【问题讨论】:
-
如果你说它在你的前端 JS 中不起作用,至少向我们展示它会很好。
-
@SergeyVidusov 我编辑了我的帖子并添加了 JS 代码。让我指出,我没有包含它的原因是,当我尝试请求不同的 JSON API(不是我创建的,而不是 PHP 中的)时,相同的代码可以正常工作。所以我坚信问题在于我的 API 而不是 JS 代码。感谢您的反馈。
标签: php json api callback jsonp