2014-02-23 60 views
0

我用resource化妝污物,並在create頁,我要加一個預覽頁面阿賈克斯後,並重定向到新的頁面無法正常工作

我試圖使用AJAX POST數據到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然後仍然沒有重定向到。
但獲取js console.log模板show.blade.phpresourceshow方法調用.. ??

如何解決?

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', '[email protected]'); 
Route::get('admin/article/preview', '[email protected]'); 

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

不可能使重定向這種方式。對於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; } });