我在互联网上搜索解决方案。我发现其中一些,但它们对我不起作用。基本上我在laravel项目上有一个输入表单,我想用ajax请求上传图像。
在Get请求而不是发送图像时发送以下参数值[object%20FormData]
我知道我做错了什么,但我不知道它是什么。谁能帮我?这是我的Html代码
<form class="form-horizontal" id="upload" enctype="multipart/form-data" action="{{{ URL::route('upload') }}}" autocomplete="off" onsubmit="return false">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input type="file" name="image" id="image" />
<button type="button" id="upload_image_btn" class="btn btn-default">Upload!</button>
</form>
这是我的ajax代码
var image = $('#image')[0].files[0];
formdata = new FormData();
formdata.append( 'image', image );
formdata.append( 'action', 'image' );
$.ajax({
type: "GET",
url: '{{{ URL::route('upload') }}}',
data: formdata,
dataType: 'json',
contentType: false,
processData: false,
success: function (data) {
console.log(data);
},
error: function (data) {
var errors = data.responseJSON;
$.each(errors, function (key, data) {
$.each(data, function (index, data) {
$(".upload_error").text(data);
})
})
}
});
任何人都可以帮我找到我做错的事吗?谢谢
解决方案:正如评论所说,我将ajax的GET请求更改为POST并且它可以工作。谢谢你的帮助