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

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上面验证了。

posted @ 2012-03-17 22:33  “清风轩”  阅读(1090)  评论(0编辑  收藏  举报