2012-04-11 9 views
1

まず、私がしたいことを説明しようとします。
私は動的サブドメインを作成するシステムを持っており、それぞれに独自のデータベースとルールセットがあります。私のメインページには、与えられた電子メールに基づいて正しいサブドメインにアクセスするために使用すべきログインフォームがあります。それは問題ありませんが、私はこれが必要です: 正しいサブドメインであることを確認した後、スクリプトがフォームアクションをログインに変更して、指定されたサブドメインにリダイレクトする方法を教えてください。
フォームを提出する際のアクションを変更する

私のスクリプトコードは次のようである:(すべてでプラグインなし)プラグインajaxFormせずにこれを行う方法がある場合

function myJson(url, postData) { 
     Jsondata = $.ajax({ 
      url : url, 
      data : postData, 
      type : 'post', 
      dataType : 'json', 
      async : false 
     }).responseText; 
     return jQuery.parseJSON(Jsondata); 
    } 
    $(function() { 
     function beforeRequest(formData, jqForm) { 
      var url = jqForm.attr('action'); 
      var data = jqForm.serialize(); 
      var jsonData = myJson(url, data); 
      if (jsonData.success == true) { 
       jqForm.attr('action',jsonData.loginUrl); 
      } else { 
       $("#login-form > .error-tooltip").find('span').empty().text(jsonData.msg).end().fadeIn(300); 
       return false; 
      } 
      return true; 
     } 
     $("#login-form").submit(function() { 
      $(this).ajaxSubmit({ 
       beforeSubmit : beforeRequest 
      }); 
      return false; 
     }) 
    }) 

はずっと義務だろう。 私が作ったこのスクリプトは、バリデーションを行い、フォームアクションを変更しますが、リダイレクトしません。
私は何が欠けていますか?

+0

あなたはwindow.locationのを使用してリダイレクトすることができますか? – Evan

答えて

0

あなたは単に、私はそれを把握

if (jsonData.success == true) { 
location.href='your sub domain to redirect to'; 
+0

しかし、私はユーザがそれぞれのサブドメインにログインして、リダイレクトしてポストデータを送信しないようにしたいと思っています – Palantir

+1

@パランチアですが、電子メールに基づいて正しいサブドメインを取得すれば、なぜ2回ログインする必要がありますか? –

+0

それは2回ログインしません。それは正確に言えば、検証はログインする場所を特定するためのものです。 – Palantir

0

ようifブロックに私の友人のおかげでリダイレクトすることはできません。問題は、サブドメインにログインし、それが302のステータスで応答し、jqueryのAJAXの成功はそれが動作するコードです、唯一のステータス200を期待:

$("#login-form").submit(function(e) { 
      e.preventDefault(); 
      var url = $(this).attr("action"); 
      var data = $(this).serialize(); 
      $.ajax({ 
       url : url, 
       data : data, 
       type : 'post', 
       dataType : 'json', 
       beforeSend : function() { 
        $("#login-form > .error-tooltip").fadeOut(300); 
       }, 
       success:function(jsonData){ 
        if(jsonData.sucsess == true){ 
         $.ajax({ 
          url: jsonData.loginSite, 
          data:data, 
          type:'post', 
          complete:function(){ 
           window.location = jsonData.site;  
          } 
         }) 
        }else{ 
         $("#login-form > .error-tooltip").find('span').empty().text(jsonData.msg).end().fadeIn(300); 
        } 
       } 
      }) 
     }) 
関連する問題