jsonp跨域获取信息没有callback怎么获取信息

发布于 2022-09-04 01:13:29 字数 1091 浏览 15 评论 0

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />  
<script type="text/javascript">  
    function jsonpCallback(data) {
    for(var i in data)alert(i);
}
</script>  
<script type="text/javascript" src="http://crossdomain.com/services.php?callback=jsonpCallback"></script>  

上面代码是有callback的,所以能获取到result和msg。
要是最下面那段代码没有callback(http://crossdomain.com/servic...,内容和有callback(http://crossdomain.com/servic...相比较,

jsonpCallback{"result":{"html":""},"msg":""}

{"result":{"html":""},"msg":""}

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />  
<script type="text/javascript">  
//这段该怎么填?
</script>  
<script type="text/javascript" src="http://crossdomain.com/services.php"></script>  

我的问题就是这段没有callback的我该怎么填?才能和有callback的弹出的是一样的值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花间憩 2022-09-11 01:13:29

主要看你的后台是怎么写的。

要想有一模一样的值,services.php 就得做一些改动,不然是不可能实现的(数据内容是由php决定的,不是js决定的,js只是决定了如何展现数据而已)。

例如,要想返回一模一样的值,services.php 可以这样改:

js:
 function jsonpCallback(data) {
   alert(data);
 }

services.php:
$callback = isset($_GET['callback']) ? $_GET['callback'] : 'jsonpCallback';
$sendData = array(
  'result' => array(
                'html' => ''
              )
  'msg'    => ''
);
$sendData = $callback . ' ' . json_encode($sendData);
echo <<<EOT
<script>
 {$callback}({$sendData});
</script>
EOT;
惜醉颜 2022-09-11 01:13:29

jsonp可以理解为ajax获取字段js代码并且插入到dom和执行。 所以需要为被插入的js代码提供正确的执行环境。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文