• ajax跨域请求的一个实例
  • 阿迪王 发表于 2015/9/2 11:45:00 | 分类标签: ajax 跨域 安全性
  •  jquery提供了$.getJSON的方法,让我们可以实现跨域ajax请求,但jqueryAPI上的内容实在太少,如何用$.getJSON,请求网站应该返回怎样的数据库才能让$.getJSON获取到,下面我就用一个实际例子来说明下。

    我后端是用php的,以下代码主要实现的一个功能就是提供一个预约登记的接口,需要传入的数据分别有:用户姓名、联系电话和地址

    ......
    /*预约登记 执行 接口*/
    case "yuyue_interface":
        $name = trim($_GET['name']);
        $phone = trim($_GET['phone']);
        $addr = trim($_GET['addr']);
        $dt = date("Y-m-d H:i:s");
        $cb = $_GET['callback'];
        if($name == "" || $name == NULL){
            echo $cb."({code:".json_encode(1)."})";
        }elseif($phone == "" || $phone == NULL){
            echo $cb."({code:".json_encode(2)."})";
        }elseif($addr == "" || $addr == NULL){
            echo $cb."({code:".json_encode(3)."})";
        }else{
            $db->execute("insert into tb_yuyue (realname,telphone,danwei,dt,ischeck) values ('$name','$phone','$addr','$dt',0)");
            echo $cb."({code:".json_encode(0)."})";
        }
        exit;
    break;
    ......

    接着就是前端的处理了

    $(document).ready(function(){
        //以下3个为预约登记需要的参数
        var name = "name";      //varchar类型,长度最多为8位(4个汉字)
        var phone = "phone";    //varchar类型,长度为11位
        var addr = "addr";      //varchar类型,长度最多为500位(250个汉字)
        $.getJSON("http://请求网站地址/data.php?ac=yuyue_interface&name="+name+"&phone="+phone+"&addr="+addr+"&callback=?", function(data){
            if(data.code==1){
                //自定义代码
                alert("姓名不能为空");
            }else if(data.code==2){
                //自定义代码
                alert("手机不能为空");
            }else if(data.code==3){
                //自定义代码
                alert("所在单位不能为空");
            }else{
                //自定义代码
                alert("预约成功");
            }
        });
    });

    需要注意的是,在后端php代码里,必须把传递进来的“ &callback=? ”也输出来,如:

    $cb = $_GET['callback'];
    echo $cb."({code:".json_encode(4)."})";

    以上就是一个简单的$.getJSON试验,通过这个试验,我们可以学到如何用$.getJSON,也能学到如何做一个接口让别人跨域请求。

  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:阿迪王
  • 加入时间:2013/6/13 0:00:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮