2017-08-01 18 views
0

ボタンをクリックした後、ユーザーをリダイレクトしようとしました。 しかし、リダイレクトは機能していません。 これはボタンのクリックを処理するための私のjsコードです。yii2 ajaxリクエストリダイレクトが動作しない

$('#MyButton').click(function() { 
    $.ajax({ 
    url: '<?php echo Url::to(['configurator/compare']) ?>', 
    type: 'POST', 
    data: { 
    Ref : Ref, 
    searchname: $("#searchname").val() , 
    searchby:$("#searchby").val() , 
    _csrf : '<?=Yii::$app->request->getCsrfToken()?>' 
    }, 
    success: function (data) { 
    } 
}); 

The http request image

要求が実行されますが、私は、URLにリダイレクトされていませんよ。 ボタンをクリックすると同じページに留まります。

+0

あなたが実際にどこにもかかわらず、リダイレクトされていません。指定されたURLにajax POSTリクエストを送信するだけです。 – Andy

答えて

0

送信したコードはリダイレクトを実行しません。

それがないすべては、例えば、url:にAjaxのPOST要求を行う(「コンフィギュレータ/コンペア・」)とあなたがsuccess:コールバックでそれを行うことができ、リダイレクトを実行するにはdata:

にパラメータを渡しています

success: function (data) { 
    window.location.href = 'http://google.com'; 
} 

あなたは上記にUR​​Lをハードコード、またはあなたがsuccessコールバック内dataにアクセスすることで利用可能である、に投稿されたスクリプトの出力にそれをベースにすることができます。

+0

しかし、リダイレクトを通じて私のコントローラの投稿データにアクセスできるようになりますか? – user7888300

+0

私はあなたがAjaxリクエストの流れを理解しているとは思わない。あなたのスクリプトは '' configurator/compare''にPOSTを行います。その時点で、あなたはajax経由で投稿したデータにアクセスすることができます(例えば 'searchname:'、 'searchby:')。そのスクリプトから何かを返すことができ、 'success:'コールバックでそれを読むことができます。その時点でリダイレクトなどを行うことができます。しかし、リクエストがajaxで行われているため、PHPリダイレクトを行うことができないため、動作しません。 – Andy

1

コントローラ 'コンフィグレータ'よりも '成功'関数が返されないようにするには、メソッド 'compare'でデータを処理した後に、必要な「リダイレクト」を行うことができます。

$data = Yii::$app->request->post(); 
    // do what you want with data 
    return $this->redirect(['controller/action']); 
0
Try Below way. 

<script> 
$(document).ready(function(){ 
    $.ajaxSetup({ 
       headers: { 
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
       } 
      }); 
    $.ajax({ 
      type:"POST", 
      data:{id:id}, 
      url : '<?php echo Yii::$app->getUrlManager()->createUrl("/property/favourite"); ?>', 
      success: function(response){ 
         window.location.href = '<?php echo Yii::$app->getUrlManager()->createUrl("/site/chat"); ?>';   
        } 
    }); 

}); 
</script> 
関連する問題