如何使用ajax请求上传图像

时间:2015-04-26 21:51:06

标签: javascript php jquery ajax form-data

我在互联网上搜索解决方案。我发现其中一些,但它们对我不起作用。基本上我在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并且它可以工作。谢谢你的帮助

0 个答案:

没有答案