2014-11-05 82 views
0

我得到與用戶參數的形式,當我做一個AJAX調用一個網頁,其中後來被submiited到一個URL,這樣我可以提前在爲同一個用戶會話 那個人去那個地方,他看到他的名字。 我創建了一個ID爲「abc_session」的div標籤,將該表單(其ID爲fm1)分配給它並提交表單。如何防止重定向表單提交

現在按要求創建會話,但頁面會自動被重定向到該網站的網址,其形式是submitted.i只是不wan't這樣的事情發生。

任何人都可以請建議something..or一些解決方法

的形式AJAX返回看起來像這樣:

<html> 
<body onload="document.fm1.submit();return false"> 
<form name = "fm1" method="post" action = "https://abcd.com/abc "> 
<input type=hidden name ="name" value="xyz"> 
<input type=hidden name ="login_parameters" value="CDF5D71C5BDB942EE2FB6C285B8DEBFE4C5675137B615CD2276571813AAC872AC8942E26B71026414BED1FEA09427D0B20A50FE2F70032D2E5B382598EC3C71D73EAB4ECBF7273A73BEB98ACEA4A0B775E7772BDC7C6746C355"> 
</form></body> 
</html> 

和腳本是這樣的

$(document).ready(function() { 

      function callwebsite() 
      { 
       $.ajax({ 
         url: "/NASApp/benemain/website", 
         data: {}, 
         type:"POST", 
         dataType: 'text', 
         cache: false, 
         success: function (data) { 

          alert("Call made to website.. "); 

          console.log(data); 
          document.getElementById("abc_session").innerHTML=data; 
          document.fm1.submit(); 


        }, 
        error : function(response){ 
         console.log('ERROR'); 
        }, 
        statusCode : { 
         500 : function() { 
          console.log('500 error'); 
          window.location.reload(true); 
         }, 
         401 : function() { 
          console.log('401 error'); 
          window.location.reload(true); 
         }, 
         404 : function(){ 
          console.log('400 error'); 
         } 
        } 
       }); 
      } 
      callwebsite(); 

嘗試提取數據和m按照quentin的建議再次調用ajax調用,但得到此錯誤「跨源請求被阻止:同源策略不允許讀取遠程資源。可以通過將資源移動到同一個域或啓用CORS來解決此問題。」

$.ajax({ 
         url: lcAction, 
         data: {partner_id:lcPartner,login_parameters:lcLP }, 

         type:"POST", 
         headers:{'Access-Control-Allow-Origin': '*'}, 
         dataType: 'text', 
         //crossDomain: true, 
         //cache: false, 
         success: function(data) 
         { 
          alert("success"); 
         }, 
         error:function(response) 
         { 
          //alert("error"); 
          console.log(response); 
         } 
       }); 

回答

0

您提交表單:

document.getElementById("abc_session").innerHTML=data; 
document.fm1.submit(); // Here 

不要那樣做。

從中提取數據並進行其他Ajax請求。

+0

可以請你分享任何例如如何從通過AJAX在運行時檢索的形式提取數據。 – akshay 2014-11-05 11:46:03

+0

http://api.jquery.com/category/selectors/&http://api.jquery.com/val/ – Quentin 2014-11-05 11:48:49

+0

感謝,現在將嘗試出頭 – akshay 2014-11-05 11:58:22

0

只要您提交表格,就應該使用e.preventDefault()

+0

事件處理程序由ready事件觸發,而不是通過表單提交。防止默認動作不會做任何事情(因爲沒有準備事件的默認動作)。 – Quentin 2014-11-05 11:22:33

+0

@VinitaRathore它不起作用。 – akshay 2014-11-05 11:44:05

+0

我的不好。誤解了它。檢查此鏈接爲您refrence:http://stackoverflow.com/questions/24248576/prevent-form-submission-javascript – 2014-11-05 12:04:32