专注于WEB前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]

ajax

  • jquery jsonp Ajax 跨域提交数据 (PHP)

    / 分类: 开发 / 6 Comments

    最近做了一个Ajax提交反馈页,但是由于空间不支持一些基本的函数,所以准备做个跨域提交。

    javascript部分:

    $("#btn").click(function(k) {
        //...
        var j = form.serializeArray();//序列化name/value
        $.ajax({
            url: "另一个域名/test.php",
            dataType: 'jsonp',
            data: j,
            jsonp: 'jsonp_callback',
            success: function(json) { //返回的json数据
                json = json || {};
                if (json.msg=='err'){
                    alert(json.info);
                }else if (json.msg=="ok"){
                    alert('提交成功');
                }else{
                    alert('提交失败');
                }
            },
            timeout: 3000
        })
        //...
    });

    php部分:

    $jsonp_callback=$_GET['jsonp_callback'];
    //...
    //如果正确
    echo $jsonp_callback,'({"msg":"ok"})';
    //如果错误
    echo $jsonp_callback,'({"msg":"err","info":"因人品问题,发送失败"})';
    //...

    值得注意的是采用jsonp 方式,beforeSend / error 都不能用了,所以beforeSend里面用js实现的验证只能用ajax在服务器端test.php上面验证了。