最近做了一个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上面验证了。