【问题标题】:ajax post and redirect to new page not workajax 发布并重定向到新页面不起作用
【发布时间】:2014-02-23 05:46:25
【问题描述】:

我用resource做crud,在create页面,我要加一个预览页面

我尝试使用 ajax 将数据发布到 admin/article/previewform 然后在路由操作控制器方法 previewform 中捕获数据并存储在变量中并重定向到新页面 preview 显示它...
我有问题
1. 为什么它没有重定向到新页面?
2.为什么在js的console.log里得到Faild to load resource … statu?s of 500
3. 我也在previewform 中尝试return Redirect::to('admin/article/previewshow'); 然后仍然没有重定向到。
但是在resourceshow方法调用中获取带有模板show.blade.php的js console.log.. ??

如何解决?

js

$.ajax({
    url: 'previewform',
    type: 'POST',
    data: {data: data},
})
.done(function(response) {
    console.log(response);
});

路线

//.. prefix=>admin
Route::resource('article','AdminArticleController');

Route::post('admin/article/previewform', 'AdminArticlePreviewController@previewform');
Route::get('admin/article/preview', 'AdminArticlePreviewController@preview');

AdminArticlePreviewController

class AdminArticlePreviewController extends AdminController
{
    public function preview()
{
    $input = Input::get('data');

    return Redirect::route('admin/article/previewshow');
}

public function previewshow()
{
    // return View::make('admin.article.preview')->with('data', $data)
}
}

【问题讨论】:

    标签: php ajax laravel


    【解决方案1】:

    无法以这种方式进行重定向。对于 ajax 请求,您需要从服务器端脚本 (PHP) 中捕获“重定向命令”并在 JS 中执行。

    改为:

    return Redirect::route('admin/article/previewshow');

    你可以使用:

    return Response::make('/redirect/url', 301)

    然后是JS代码:

    .done(function(response) { console.log(response); });

    可以替换为:

    .done(function(data, statusText, xhr) { if(xhr.status == 301) { window.location = data; } });

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      相关资源
      最近更新 更多