javascript - jsonp跨域获取信息没有callback怎么获取信息
本文介绍了javascript - jsonp跨域获取信息没有callback怎么获取信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<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的弹出的是一样的值
解决方案
主要看你的后台是怎么写的。
要想有一模一样的值,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;
这篇关于javascript - jsonp跨域获取信息没有callback怎么获取信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文