jsonp 跨域 解析返回结果报错

发布于 2021-11-20 10:01:20 字数 744 浏览 801 评论 4

1.测试代码如下:

<!DOCTYPE HTML>
<html>
<head>
</head>
<body >
<input type="button" onclick="callBing()" value="load"/>
</body>
<script type="text/javascript">
function callback(data) {
alert("s");
}

function callBing(){
var JSONP=document.createElement("script");  
JSONP.type="text/javascript";
JSONP.src="http://bj1.api.bing.com/qsonhs.aspx?mkt=zh-CN&q=a&jsonp=callback";
document.getElementsByTagName("head")[0].appendChild(JSONP);
}
</script>
</html>

2.错误信息如下:

Uncaught SyntaxError: Unexpected token :

3.返回的数据没有问题,可以通过json tool的格式化,有经验的大侠求指点.

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

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

发布评论

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

评论(4

樱花落人离去 2021-11-24 11:26:06

灰常感谢你详细的解答,结贴!

最偏执的依靠 2021-11-24 09:24:24

补充一下:现在用solr在做搜索词提示功能,已经实现了;只是无法达到像Bing、Google那种正对地区的效果。所以从URL你也看出来了,我们想利用Bing搜索。我想问下solr返回的也是json我们可以解析,Bing是因为什么原因会有问题?

成熟稳重的好男人 2021-11-24 08:09:38

你这个地址不支持JSONP啊,请求来的数据是JSON,浏览器要把它当做Javascript来解析,遇到“:”就报错了。

如果支持JSONP,应该返回Javascript代码,在代码里面调用callback函数才对

毁梦 2021-11-23 02:14:58

不了解solr,请求到的数据是一个纯JSON格式的话,是不能用JSONP方式调用的,支持JSONP方式的URL返回的一定是js脚本,一般是一句函数调用,百度首页的搜索词联想,返回的形式是这样的:

jQuery110209772432656027377_1399457477444({"q":"a","p":false,"s":["acfun","apple","angelababy","ai","akb48","app store","android","adobe reader","acg","autocad"]});

jQuery110209772432656027377_1399457477444相当于你代码里的callback,是客户端页面定义的函数名,JSONP方式会在返回的Javascript代码里面调用这个函数,JSON数据是当做参数传入方法的,而不是直接返回一个JSON

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