ajax发布并重定向到新页面不起作用

时间:2014-02-23 05:46:26

标签: php ajax laravel

我使用resource make crud,在create页面中,我必须添加预览页

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

1 个答案:

答案 0 :(得分:2)

无法以这种方式进行重定向。对于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; } });