【问题标题】:Jquery post both file and data with one ajax callJquery 通过一个 ajax 调用同时发布文件和数据
【发布时间】:2015-08-28 03:57:24
【问题描述】:

您好,我有一个 wordpress php 类,它接收我的 ajax 并且运行良好。 现在我必须在我用来将参数传递给 PHP 类的同一个 POST 请求中上传一个文件(我在类中有一个开关,可以根据 POST 数据中的参数将我发送到正确的函数)。

这是代码:

$(document).ready(function (e) {


$('#imageUploadForm').on('submit',(function(e) {
    e.preventDefault();
    var formData = new FormData(this);
    var userID = <?php echo get_current_user_id(); ?>; 
    var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    var data = {
            'action': 'romme_call',
            'whatever': 1234, 
            'userID': userID,
            'function_call': 'upload_profile_photo',
            **'form_data' : formData**
        };
         console.log(data);
        jQuery.post(ajaxurl, data, function(response) {
            console.log("done");
            console.log(data);
        });

这段代码当然会返回“Uncaught TypeError: Illegal invocation”

因为它不接受 formData 作为 data 中的参数。

我该如何处理?

【问题讨论】:

    标签: javascript php jquery ajax image-uploading


    【解决方案1】:

    它返回 Illegal invocation,因为 jQuery 正在尝试使用 $.param 解析表单数据。

    使用jQuery的ajax处理提交文件时必须关闭

    $('#imageUploadForm').on('submit', (function (e) {
        e.preventDefault();
        var formData = new FormData(this);
        var userID = <? php echo get_current_user_id(); ?> ;
        var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    
        formData.append('action', 'romme_call');
        formData.append('whatever', '1234');
        formData.append('userID', userID);
        formData.append('function_call', 'upload_profile_photo');
    
        $.ajax({
            url  : ajaxurl,
            type : 'POST',
            data : formData,
            contentType: false,
            processData: false
        }).done(function(response) {
            console.log("done");
            console.log(data);
        });
    });
    

    【讨论】:

    • 谢谢你,效果很好!下次我会研究ajax处理:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2016-12-28
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2017-04-03
    相关资源
    最近更新 更多