Javascript 如何在全局js中使用ajax?
我的看法是:Javascript 如何在全局js中使用ajax?,javascript,jquery,ajax,laravel,laravel-5.3,Javascript,Jquery,Ajax,Laravel,Laravel 5.3,我的看法是: <input type="file" style="display: none" id="test"> var _token = $('input[name="_token"]').val(); console.log(_token); $('#test').on("change", function(){ data = new FormData(); $.ajax({ url: window.Laravel.baseUrl+'/pr
<input type="file" style="display: none" id="test">
var _token = $('input[name="_token"]').val();
console.log(_token);
$('#test').on("change", function(){
data = new FormData();
$.ajax({
url: window.Laravel.baseUrl+'/product/addImage',
type: "POST",
data: { data: data, _token: _token },
enctype: 'multipart/form-data',
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function(data) {
console.log(data);
});
});
Route::post('product/addImage', 'ProductController@addImage');
public function addImage(Request $request)
{
dd('test');
// dd($request->all());
}
我的路线是这样的:
<input type="file" style="display: none" id="test">
var _token = $('input[name="_token"]').val();
console.log(_token);
$('#test').on("change", function(){
data = new FormData();
$.ajax({
url: window.Laravel.baseUrl+'/product/addImage',
type: "POST",
data: { data: data, _token: _token },
enctype: 'multipart/form-data',
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function(data) {
console.log(data);
});
});
Route::post('product/addImage', 'ProductController@addImage');
public function addImage(Request $request)
{
dd('test');
// dd($request->all());
}
我的控制器是这样的:
<input type="file" style="display: none" id="test">
var _token = $('input[name="_token"]').val();
console.log(_token);
$('#test').on("change", function(){
data = new FormData();
$.ajax({
url: window.Laravel.baseUrl+'/product/addImage',
type: "POST",
data: { data: data, _token: _token },
enctype: 'multipart/form-data',
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function(data) {
console.log(data);
});
});
Route::post('product/addImage', 'ProductController@addImage');
public function addImage(Request $request)
{
dd('test');
// dd($request->all());
}
执行时,控制台选项卡存在如下错误:
<input type="file" style="display: none" id="test">
var _token = $('input[name="_token"]').val();
console.log(_token);
$('#test').on("change", function(){
data = new FormData();
$.ajax({
url: window.Laravel.baseUrl+'/product/addImage',
type: "POST",
data: { data: data, _token: _token },
enctype: 'multipart/form-data',
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function(data) {
console.log(data);
});
});
Route::post('product/addImage', 'ProductController@addImage');
public function addImage(Request $request)
{
dd('test');
// dd($request->all());
}
POST 500(内部服务器错误)
在“网络”选项卡上存在如下错误:
<input type="file" style="display: none" id="test">
var _token = $('input[name="_token"]').val();
console.log(_token);
$('#test').on("change", function(){
data = new FormData();
$.ajax({
url: window.Laravel.baseUrl+'/product/addImage',
type: "POST",
data: { data: data, _token: _token },
enctype: 'multipart/form-data',
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function(data) {
console.log(data);
});
});
Route::post('product/addImage', 'ProductController@addImage');
public function addImage(Request $request)
{
dd('test');
// dd($request->all());
}
VerifyCsrfToken.php第68行中的令牌不匹配异常:
如何解决错误
是否可以将ajax放在全局js中?您可以通过两种方式解决此问题: 你可以用
<meta name="csrf-token" content="{{ csrf_token() }}" /> // add this under head tag
And before Ajax call add this:-
$.ajaxSetup({
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
希望有帮助 您可以通过两种方式解决此问题: 你可以用
<meta name="csrf-token" content="{{ csrf_token() }}" /> // add this under head tag
And before Ajax call add this:-
$.ajaxSetup({
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
希望有帮助 记住将文件添加到数据中
data = new FormData();
data.append("test", $("#fileInput")[0].files[0])
记住向数据中添加文件
data = new FormData();
data.append("test", $("#fileInput")[0].files[0])
参考资料:@eeya,看看我的问题。我必须按照参考资料更新它。但都是一样的。而当I
console.log(_-token)时代码>,令牌existReference:@eeya,看看我的问题。我必须按照参考资料更新它。但都是一样的。而当Iconsole.log(_-token)时
,与第一种方法类似,自从我启动laravel以来,我一直在***.blade.php内的脚本标记中定义_标记。那似乎太多了cleaner@kunal,我先试试你。它起作用了。没有错误。但是当我添加dd($\u文件)
在addImage方法中,响应显示数组为空,如下所示:[]
。它应该显示一组照片吗uploaded@TrendingNews因为您的表单数据是空的,所以在将表单数据发送给控制器之前,您需要将其附加到表单数据中感谢您的帮助,伙计们,我们正在帮助您!与第一种方法非常相似,自从我启动laravel以来,我一直在***.blade.php内的脚本标记中定义_标记。那似乎太多了cleaner@kunal,我先试试你。它起作用了。没有错误。但是当我添加dd($\u文件)
在addImage方法中,响应显示数组为空,如下所示:[]
。它应该显示一组照片吗uploaded@TrendingNews因为您的表单数据是空的,所以在将表单数据发送给控制器之前,您需要将其附加到表单数据中感谢您的帮助,伙计们,我们正在帮助您!