0

我有一个表单,提交后会转到blah.php. 问题是,blah.php离开站点到另一个域。JQuery 看到了这一点并给出了一个302 Object Moved error. 所以我不得不使用JSONAJAX发送表格。注释详细信息在下面的 Jquery 代码中。

流程应该是单击按钮,检查服务器端,如果没有'ok'响应,则在状态 div 中输出响应并停止该页面上的所有服务器端。如果'ok'是响应让表单继续前进

快速模拟我的代码

<form id="ppform" method="post" action"blah.php">
<input id="someid" type="text" />
<button id="sendbutton">Send</button>
<div id="status"></div>
</form>

$(document).ready(function(){
    $(document).on('click', '#sendbutton', function(){
         $('#status').empty();
         $.ajax({
             type: "POST",
             url: "blah.php",
             data: reqBody,
             dataType: "json",
             success:function(data,textStatus){ 
                  // here I want the div to return data if the response isn't 'ok'
                  if(data!='ok'){
                      $('#status').append(data);
                  }else{
                      // response was 'ok' so empty div, 
                      // show loading gif and submit the form
                      $('#status').empty().html('<div id="proc">Processing</div><img src="loading.gif" />');
                      if (data.redirect){
                         window.location.href = data.redirect;
                      } else {
                         $("#ppform").replaceWith(data.form);
                      }
                  }
               }
         });
    }); 
});
4

2 回答 2

0

我认为,这是一个浏览器安全问题,您不能在不同的域上发送 ajax 请求。

于 2012-05-24T16:14:51.357 回答
0

如果您使用 jQuery 执行 ajax 请求,您可以将数据类型更改为 JSONP 以执行跨域 json 调用。

更多信息在这里:

jQuery AJAX 跨域

于 2012-05-24T16:19:07.213 回答