我使用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)
}
}
答案 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;
}
});