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