2014-11-05 3 views
0

Я получаю форму с пользовательскими параметрами, когда я делаю вызов AJAX на страницу, которая позже отправляется на URL-адрес, чтобы я мог создать сеанс для того же пользователя заранее и когда этот человек отправляется на этот сайт, там он видит свое имя. Я создал один тег div с идентификатором «abc_session», присвоить ему форму (идентификатор которой равен fm1) и отправил форму.Как предотвратить перенаправление на форму submit

В настоящее время согласно требованию сеанс создается, но страница автоматически перенаправляется на этот URL-адрес сайта, на который отправлена ​​форма. Как раз этого не происходит.

может кто-нибудь пожалуйста, предложить 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 aiking другой вызов ajax, предложенный quentin, но получающий эту ошибку. «Запрос на перекрестный запрос заблокирован: политика одного и того же происхождения запрещает чтение удаленного ресурса. Это можно устранить, перемещая ресурс в тот же домен или разрешая 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

+0

http://api.jquery.com/category/selectors/ и http://api.jquery.com/val/ – Quentin

+0

спасибо, попробую что-то сейчас – akshay

0

Вы должны использовать e.preventDefault() как только вы отправите форму.

+0

Обработчик события запускается событием готовности, а не по форме. Предотвратить действие по умолчанию ничего не сделает (потому что для события готовности нет). – Quentin

+0

@ VinitaRathore не работает. – akshay

+0

Мой плохой. Непонятно. Проверьте эту ссылку для вашего рецензирования: http://stackoverflow.com/questions/24248576/prevent-form-submission-javascript –

Смежные вопросы