如何在laravel中使用ajax返回视图?
我在这里遇到了一些问题,我想在使用ajax发布数据时检查数据 这是我的ajax ajax.js如何在laravel中使用ajax返回视图?,ajax,laravel,post,httprequest,Ajax,Laravel,Post,Httprequest,我在这里遇到了一些问题,我想在使用ajax发布数据时检查数据 这是我的ajax ajax.js let dataNewMemoData = JSON.stringify(createnewMemoData); $.ajax({ url: '/crew_memo/submitdata', method: 'POST', dataType: 'json', contentType: 'json', data: dataNewMemoData, headers: {'X-CSRF-TOKEN':
let dataNewMemoData = JSON.stringify(createnewMemoData);
$.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
dataType: 'json',
contentType: 'json',
data: dataNewMemoData,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
contentType: 'application/json; charset=utf-8'
})
这是我的网络路线
web.php
Route::post('/crew_memo/submitdata', 'CrewProgramController@saveData');
public function saveData(Request $request){
$request = json_decode($request->getContent());
return view('CrewProgram.succes')->render();
// return dd($request);
}
现在是我的控制器
controller.php
Route::post('/crew_memo/submitdata', 'CrewProgramController@saveData');
public function saveData(Request $request){
$request = json_decode($request->getContent());
return view('CrewProgram.succes')->render();
// return dd($request);
}
首先,我想转到我的success.blade.php
我不知道为什么我的页面永远都不去任何地方,但是我的post方法还可以
秒,我想查看我的数据,以便可以使用返回dd($request)
如何解决它
我试图用这个
返回(字符串)视图(CrewProgram.succes)
及
返回视图(CrewProgram.success)->render()
,在
什么都不管用,帮我个忙,我用的是laravel,你可以试试这个方法。像这样更新你的控制器
return response()->json([
'htmlData' => view('CrewProgram.succes')->render()
]);
然后设置jquery
$.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
dataType: 'json',
contentType: 'json',
data: dataNewMemoData,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data.htmlData)
}
})
首先,您需要修复AJAX数据 从你的版本
$.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
dataType: 'json',
contentType: 'json',
data: dataNewMemoData,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
contentType: 'application/json; charset=utf-8'
})
对此
$.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
contentType: 'json',
data: { content : dataNewMemoData},
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
success : function(data){
console.log(data) //this will be your html respone make sure you don't have any html or header or body tag inside your view file you want to render.
},
error : function(jqXHR,textStatus,thrownError){
console.log(jqXHR) //for non 2xx or 3xx response code
}
})
现在我们将转到控制器方法
由此
公共函数saveData(请求$Request){
对此
public function saveData(Request $request){
$request = json_decode($request->get('content));
return view('CrewProgram.succes')->render();
// return dd($request);
}
你能把这个PageRequest.php
文件创建到你的app\Http\Requests
文件夹吗
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PageRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
你成功了
public function saveData(PageRequest $request){}
然后在发送post请求后,通过执行
dd($request->all())
检查$request->all()
的值。是否正在捕获回调?你应该接到回电并更新dom。对不起,回电是什么意思?我希望在标题中指定'Accept':'application/json','Content-Type':'text/plain',并在发出post请求后再次检查。它返回给您查看代码。现在,在javascript代码中,您必须在success函数中捕捉到这一点,然后您可以更新dom htmli。我收到了警报,但是,我的页面没有变为CrewProgram.succes,我如何检查我的数据在那里,您知道我需要检查我的数据如何已经在控制器上或没有使用dd()创建我发送的PageRequest.php文件看起来像是在使用Request全局类。或者如果您可以在ajax:data:dataNewMemoData中使用此方法,那没关系,只需删除ajaxi中不必要的键就可以了。它说PageRequest不存在,甚至很难我已经添加了它,为什么我不应该使用全局请求类?