javascript - 如何在 Laravel 中使用 Ajax 上传文件我收到错误 419(未知状态)
问题描述
如何在 Laravel 中使用 Ajax 上传文件我收到错误 419(未知状态)。1.Javascript代码。2.控制器代码。3.路由器代码。
Javascript代码
$("#front_image").change(function() {
let photo = document.getElementById("front_image").files[0];
let formData = new FormData();
formData.append("photo", photo);
formData.append("names",'ABC');
$.ajax({
type: "POST",
url:'/up',
data:{"_token": $('meta[name="csrf-token"]').attr('content'),"formdata":formData},
cache:false,
contentType: false,
processData: false,
success:function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
});
控制器代码
public function Image(Request $request) {
return $request->get('names');
}
路由器代码
Route::POST('/up', 'Controller@Image')
解决方案
尝试像这样添加CSRF-Token
到您的header
:
$("#front_image").change(function() {
let photo = document.getElementById("front_image").files[0];
let formData = new FormData();
formData.append("photo", photo);
formData.append("names",'ABC');
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
type: "POST",
url: '/up',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
});
此外,我更愿意添加formData
上面这个例子。所以你可以access
像在控制器中那样做。
推荐阅读
- java - sc.nextLine() 不读取行
- typescript - 我们如何将标头值设置为 Cloud Firestore 中的身份验证
- reactjs - 使用上下文 API 时出现此错误。TypeError: Object is not iterable (cannot read property Symbol(Symbol.iterator))
- excel - 仅从特定列中提取唯一数据
- c# - 使用 POST 方法将 HttpWebRequest 转换为 HttpClient
- java - 为什么我不能让我的通话录音应用程序工作?
- javascript - 我正在使用完整日历资源时间线周视图,版本 5。日期水平滚动。我想垂直滚动日期
- html - 布局中文本框和文本区域的混合
- ocr - 使用python从pdf中检测语言/脚本
- javascript - OrientationChange 行为怪异