1.一般情况下AJAX是无法跨域获取数据的,但是如果用 Jsonp 请求方式是可以实现跨域请求的
以下是三个重点:
dataType: "jsonp",   //请求Jsonp格式

jsonp:  , // 后台定义的回调函数标识符(一般默认为:callback)
<html>
<head>
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <script type="text/javascript">
        function getData(keyword) {
            var url="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=" +keyword;
            $.ajax({
                type: "get",
                async: false,
                url: encodeURI(url),
                dataType: "jsonp",
                jsonp: "cb", // 后台定义的回调函数标识符(一般默认为:callback)
                jsonpCallback: "jsonCallback", // 自定义的jsonp回调函数名称(默认为jQuery自动生成的随机函数名)
                success: function(e){
                    console.log('名字:'+e.name);
                    console.log('年龄:'+e.age);
                },
                error: function(){
                    alert('fail');
                }
            });
        }
    </script>
</head>
<body>
    <button onclick="getData('我');">百度搜索"我"</button>
</body>
</html>
后端以PHP为例:
public function XXX(){
	//获取回调函数名
        $jsoncallback = htmlspecialchars($_REQUEST['cb']);
//json数据 $json_data = '{"name":"张三","age":"30"}'; //输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")"; }
相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!