这是我的ajax请求:
var files = $('#imgur_attach')[0].files;
if(files.length > 0){
var fd = new FormData();
// Append data
fd.append('file',files[0]);
fd.append('_token',$globalToken);
$.ajax({
type: "POST",
dataType: "json",
contentType: false,
processData: false,
url: host + "/attach-comment-image/" ,
data: {fd},
控制器:
public function attach(Request $request) {
$this->validate($request, [
'file' => 'image|required',
]);
当发送这个ajax请求时,验证器告诉我"file"字段是必需的,尝试返回request->get('file')
返回null
。
但是,当我在ajax请求之前执行console.log(fd);
时,它返回以下内容:
为什么会这样呢?我通常不会通过常规的POST请求上传AJAX文件,所以我不明白我错过了什么。
3条答案
按热度按时间xxb16uws1#
发送前尝试字符串化数据,如下所示:
xzv2uavs2#
您需要添加多部分表单数据
iecba09b3#
用一个form标记将输入内容 Package 起来,就像这样:
不知道为什么在 AJAX 请求中设置
contentType: "multipart/form-data"
不起作用,但是这个解决方案起作用了,所以我就用这个来代替。