JQuery报错:Uncaught TypeError

这几天在入门JQuery,学到Jsonp的知识点,想简单调用一下百度搜索的关键字联想接口,但一直报错:
Uncaught TypeError: Cannot read property 'sug' of undefined at...
代码如下:

<script type="text/javascript", src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript">

$.ajax({
    url:"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?",
    type:"get",
    dataType:"jsonp",
    data:{wd:"a"}
})

.done(function(data){
    console.log(data);
})
</script>

这里写图片描述
这里写图片描述

我按照网上方法,但似乎都没能解决,用浏览器直接访问接口出现了这样的画面
这里写图片描述

所以应该是GET参数有误的问题。结果筛选发现除了wd外,cb是必要的
这里写图片描述
于是在data那里增加了cb参数
这里写图片描述

不过依旧报错
这里写图片描述
这里写图片描述

这里是因为没有约定回调函数的原因,加上jsonpCallback以及对应的函数名即可,代码如下:

<script type="text/javascript", src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript">

$.ajax({
    url:"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?",
    type:"get",
    dataType:"jsonp",
    data:{
        wd:"a",
        cb:"jQuery1102007692530514095441_1530145183899",
    },
    jsonpCallback:"jQuery1102007692530514095441_1530145183899"
})
.done(function(data){
    console.log(data);
})

</script>

这里写图片描述

强调一下:这里的函数名是动态生成的,但用上面固定的也能正常使用,而时间久了会不会失效暂时不知道,如果失效可以从chrome抓包获取新的值。或者查看网页源码,解析动态生成相应值的算法。

猜你喜欢

转载自blog.csdn.net/qq_41359051/article/details/80838611