在AJAX调用中转移到另一个页面

时间:2017-05-10 01:31:10

标签: javascript jquery ajax laravel

您好可以使用ajax重定向到另一个页面吗?我有这段代码,我一直在努力尝试这个。

<script type="text/javascript">
$(document.body).on('click', '#btnPrintPrev', function() {
    $.ajax({
        url: '/pdfdatacal',
        data: {
          dummydata: "This is a dummy data"
        },
       });
});
  </script>

现在它应该能够将数据传送到另一个页面并重定向到那里。问题是它没有。

这就是我在路线中使用的

Route::get('/pdfdatacal', 'GenerateReportController@pdfdatacal');

然后在控制器中

 public function pdfdatacal(Request $request) {
        return $request->data['dummydata'];

    }

我的预期结果应该是包含dummydata值的空白页面,但在我的代码中不会这样做。我该如何做到这一点?

3 个答案:

答案 0 :(得分:0)

使用

window.location.href = "http://yourwebsite.com/pdfdatacal";

在你的成功电话中

我们的想法是,您将数据发送到控制器,它会发回一个响应,然后您从javascript重定向到您想要的位置。

$.ajax({
    url: '/pdfdatacal',
    type : 'GET',
    data : {
        dummydata: "This is a dummy data"
    },
    success : function(data) {              
        window.location.href = "http://yourwebsite.com/pdfdatacal";
    }
});

但是如果您的控制器对您发送的数据不执行任何操作,那么您根本不需要使用ajax,使用javascript进行简单的重定向。

答案 1 :(得分:0)

您可以在成功中使用window.location.assign('your URL here!');

success : function(data) {              
        window.location.assign('your URL here!');
    }

答案 2 :(得分:0)

首先你的ajax必须是

$.ajax({
    url: '/pdfdatacal',
    method: 'post',
    data: { dummydata: "This is a dummy data" },
    dataType: "JSON",
    success: function(response){
        console.log(response); // just to check if the data is being passed
        // do something you want if ever . 
    }
});

然后在你的路线

Route::post('/pdfdatacal', 'GenerateReportController@pdfdatacal');
控制器中的

public function pdfdatacal(Request $request) {
    return response()->json($request->dummydata);
}
希望它有所帮助..