gpt4 book ai didi

javascript - 无法从 json-p 调用访问数据

转载 作者:行者123 更新时间:2023-11-28 21:04:12 26 4
gpt4 key购买 nike

我正在尝试从另一个域内的服务器访问一些数据。

所以我有这个 php 代码:

header('Content-type: application/json');
$callback = $_GET[callback];
echo $callback . '(' . $CIPHERDATA . ')';

客户端运行的javascript是这样的

$.getJSON("http://mydomain.gr/zerobin-015/?24c3285?callback=?",function(jsondata){
alert(jsondata.data);
alert("hi");
});

警报不显示。唯一发生的事情是创建一个脚本标记,其中包含我需要但无法访问的所有信息。

<script src="http://mydomain.gr/zerobin-015/?24c3285?callback=jsonp1335048265855&_=1335048265874">
({"data":"{\"iv\":\"smDkNQMt0MIbPABPbAb+xQ\",\"salt\":\"aoFfKV+jHhs\",\"ct\":\"Ns17UQZQN\/ktO2hUW+dPug\"}","meta":{"expire_date":1337635538,"postdate":1335043538}})
</script>

我的 json-p 格式有问题吗?这些数据的正确格式是什么以便可以访问?

最佳答案

你做得对。这只是 PHP 中的一个运行时错误。
在 PHP 脚本中,将 $GET[callback] 替换为 $GET['callback']。请注意单引号。

编辑

看看你的网址,我想说你还需要替​​换它:

http://mydomain.gr/zerobin-015/?24c3285?callback=?

这样:

http://mydomain.gr/zerobin-015/?24c3285&callback=?

注意:第二个?被替换为 &。根据RFC3986 ,HTTP URL 的格式最多要求一种?在任何网址中。这种情况可能会有点令人困惑,因为尾随 ? 。该函数在运行时的 $.getJSON() 调用中被 jQuery 替换。那场决赛?不会出现在最终 URL 中。那么最后你应该只有一个吗? .

<小时/>

编辑2

我刚刚在您的 jsonp 端点上尝试了 HTTP GET。这是我使用的网址:

http://kasem.gr/vasilis-dev/zerobin-015/?xxxxxBigStringHerexxxx=&callback=foo

xxxxBigStringHerexxx 被替换为由 40 个明显随机的字符和数字组成的字符串。我得到的结果:

jsonCallback({"data":"{\"iv\":\"smDkNQMt0MIbPABPbAb+xQ\",
\"salt\":\"aoFfKV+jHhs\",\"ct\":\"Ns17UQZQN\/ktO2hUW+dPug\"}",
"meta":{"expire_date":1337635538,"postdate":1335043538}})

这告诉我你的 PHP 不正确。当我传递“foo”时,它使用 jsonCallback 作为回调函数名称。另外,由于某种原因,“数据”是序列化的 json 字符串。这似乎是一个不必要的步骤。但功能不匹配才是最重要的。

如果不清楚,我建议您read a little more about JSONP .

关于javascript - 无法从 json-p 调用访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10263763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com