如何在AJAX提交FormData时一同传递blog_id变量?
问题解答
注释里的写法不可行。因为把FormData对象嵌套进普通JS对象后,结合你设置的contentType: false和processData: false,后端根本无法正确解析这份混合格式的数据。
正确的做法是直接用FormData的append方法,把blog_id追加到表单数据中,和图片文件的处理方式一致:
var blog_id = "<?php echo $blog_id; ?>"; let form_data = new FormData(); let img = $("#myImage")[0].files; if(img.length > 0){ form_data.append('my_image', img[0]); // 直接将blog_id追加到form_data里 form_data.append('blog_id', blog_id); $.ajax({ url: 'blog_img_upload.php', type: 'post', data: form_data, contentType: false, processData: false, success: function(res){ const data = JSON.parse(res); if (data.error != 1) { let path = "../ui/images/blog_images/"+data.src; $("#preImg").attr("src", path); $("#preImg").fadeOut(1).fadeIn(1000); $("#myImage").val(''); }else { $("#errorMs").text(data.em); } $('#img_main_show_div').load(location.href + " #img_main_show_div"); } }); }
之后在blog_img_upload.php中,就可以通过$_POST['blog_id']获取到该值,配合$_FILES['my_image']完成后续处理。
内容的提问来源于stack exchange,提问作者Abhijit
相关产品推荐
相关产品推荐

