Ajax在请求完成时没有回调

时间:2014-08-27 19:20:09

标签: php jquery ajax

我正在通过AJAX上传图片,但成功并不是完整的。

我在表单中退出了这两个对象。

<img class="b_logo" id="b_logo_img" src="images/no_image.gif"> 
<input class="file_up" id="file_logo" type="file">

数据包含图像的URL。

$(function() {

    $("#file_logo:file").change(function (){
       var fileName = $(this).val();
       savepic();
    });

});

function savepic()
{
var file_data = $("#file_logo").prop("files")[0]; // Getting the properties of file from file field
var form_data = new FormData(); // Creating object of FormData class
form_data.append("file", file_data) // Appending parameter named file with properties of file_field to form_data
form_data.append("user_id", 123) // Adding extra parameters to form_data
$.ajax({
url: "support_file/upload_image.php",
dataType: 'script',
cache: false,
contentType: false,
processData: false,
data: form_data, // Setting the data attribute of ajax with file_data
type: 'post',
success: function (data) {
$("#b_logo_img").attr("src",data);
}
});
}

响应 enter image description here

2 个答案:

答案 0 :(得分:2)

删除dataType: 'script'有效。

答案 1 :(得分:1)

这应该可以正常使用

1)尝试使用表单获取图像文件名并将其发送到php,而不是按照您的方式获取它。

2)当您动态更改其src

时,始终清空img标记的style属性
$("#file_logo").change(function()  
    { var formData = new FormData($("#form_id")[0]);



        $.ajax({
            url: "name_of_your_php_page.php",
            type: 'POST',
            data: formData,
            async: false,
            success: function (info) {
                $("#b_logo_img").attr('src',info).fadeIn();
                $("#b_logo_img").attr('style',' '); 
    },
    cache: false,
    contentType: false,
    processData: false
});
return false;

});