【问题标题】:JQuery, Ajax and PHP : Sending FormData AND String valuesJQuery、Ajax 和 PHP:发送 FormData 和字符串值
【发布时间】:2015-10-22 16:26:37
【问题描述】:

我想向 PHP 页面发送一个 FormData 值和一些 String 值。

这是我在 JS 端的代码:

$.ajax({
            url: 'upload-pic.php', 
            type: 'post',
            data: {
                type : type,
                id : id,
                formData : formData
            },
            processData:false,
            success: function(data, status) {

                //stuff i'm doing with the data 

            }
        }); 

在 PHP 方面:

if(isset($_POST['type']) && isset($_POST['id'])){
    //stuff i'm doing
}

然后,我收到一条错误消息,提示未设置 type 和 id。我猜这来自我的 ajax 调用中的 processData: false。 但如果没有这个,我会不可避免地遇到非法调用,因为我试图发送 FormData。

有什么方法可以在同一次调用中发送 FormData 和我的 String 值?

谢谢!

【问题讨论】:

  • 我们需要更多代码 - 您的值“type”和“id”未在您的示例中设置,这就是您收到错误消息的原因

标签: javascript php jquery ajax


【解决方案1】:

我假设您使用的是FormData 对象,在这种情况下,您需要将字符串值附加到FormData 对象,并将该对象作为data 参数传入jQuery's$.ajax

您可以使用append 方法将数据附加到FormData 对象。

这应该可行:

formData.append('type', type);
fromData.append('id', id);
$.ajax({
    url: 'upload-pic.php', 
    type: 'post',
    data: formData,
    processData:false,
    contentType: false,
    success: function(data, status) {
         //stuff i'm doing with the data 
    }
}); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    相关资源
    最近更新 更多