yii2 ajax请求重定向不起作用

时间:2017-08-01 15:00:30

标签: javascript php jquery ajax yii2

我在点击按钮后尝试重定向用户。 但是重定向不起作用。 这是我处理按钮点击的js代码。

$('#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

请求已执行但我没有重定向到网址。 当我点击按钮时,我会停留在同一页面上。

4 个答案:

答案 0 :(得分:1)

如果您不想将任何数据退回给您,那么成功&#39;功能,比在您的控制器&#39;配置器&#39;,方法&#39;比较&#39;,处理您的数据后,您可以重定向到&#39;查看&#39;你想要的:

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

答案 1 :(得分:0)

您发布的代码不会执行重定向。

它只是向url:('配置器/比较')发出ajax POST请求并传递data:中的参数

要执行重定向,您可以在success:回调中执行此操作,例如

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

您可以对上面的网址进行硬编码,也可以将其基于您发布到的脚本的输出,可以通过访问data回调中的success来获取。

答案 2 :(得分:0)

var match = document.querySelectorAll("._div");
for(var i = 0; i <= match.lenght; i++){
  match.item(i).addEventListener('click', function(event){
    console.log("div clicked:"event.target)
    if(event.target.dataset.div == "2"){ // do something ... }
  })
}

答案 3 :(得分:0)

您可以在控制器中设置路径并将URL发送回页面。

Name

在您的查看页面上,您所要做的只是

public function actionAjaxMethod() {
    //my logic
    //if everything is successfulget the url path you want to redirect to.
    $url = Yii::$app->getUrlManager()->createUrl("/controllerName/methodName");
   return \yii\helpers\Json::encode([
      'status' => true,
      'url' => $url,
   ]);
}