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的格式化,有经验的大侠求指点.
不了解solr,请求到的数据是一个纯JSON格式的话,是不能用JSONP方式调用的,支持JSONP方式的URL返回的一定是js脚本,一般是一句函数调用,百度首页的搜索词联想,返回的形式是这样的:
jQuery110209772432656027377_1399457477444({"q":"a","p":false,"s":["acfun","apple","angelababy","ai","akb48","appstore","android","adobereader","acg","autocad"]});
jQuery110209772432656027377_1399457477444相当于你代码里的callback,是客户端页面定义的函数名,JSONP方式会在返回的Javascript代码里面调用这个函数,JSON数据是当做参数传入方法的,而不是直接返回一个JSON
你这个地址不支持JSONP啊,请求来的数据是JSON,浏览器要把它当做Javascript来解析,遇到“:”就报错了。
如果支持JSONP,应该返回Javascript代码,在代码里面调用callback函数才对
补充一下:现在用solr在做搜索词提示功能,已经实现了;只是无法达到像Bing、Google那种正对地区的效果。所以从URL你也看出来了,我们想利用Bing搜索。我想问下solr返回的也是json我们可以解析,Bing是因为什么原因会有问题?
灰常感谢你详细的解答,结贴!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。