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

ajax

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

    / 分类: 开发 / 6 Comments

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

    javascript部分:

    1. $("#btn").click(function(k) {
    2.     //...
    3.     var j = form.serializeArray();//序列化name/value
    4.     $.ajax({
    5.         url: "另一个域名/test.php",
    6.         dataType: 'jsonp',
    7.         data: j,
    8.         jsonp: 'jsonp_callback',
    9.         success: function(json) { //返回的json数据
    10.             json = json || {};
    11.             if (json.msg=='err'){
    12.                 alert(json.info);
    13.             }else if (json.msg=="ok"){
    14.                 alert('提交成功');
    15.             }else{
    16.                 alert('提交失败');
    17.             }
    18.         },
    19.         timeout: 3000
    20.     })
    21.     //...
    22. });

    php部分:

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

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