简体   繁体   English

在PHP中使用Ajax提交multipart / form-data为null

[英]Submitting multipart/form-data using ajax in php is null

I have this kind of form: method="post" enctype="multipart/form-data" 我有这种形式:method =“ post” enctype =“ multipart / form-data”

Everytime the form is submitted via ajax 每次通过ajax提交表单

$("#openTicketSubmit").click(function(){
    var support_ticket_form_data = new FormData($("#support_ticket_form"));
    $.ajax({
        type: "POST",
        url: "{$systemurl}submit_ticket.php",
        data: support_ticket_form_data,
        contentType: 'multipart/form-data',
        success: function(results){
            console.log(results);
        },
        error( xhr, ajaxOptions, thrownError ){
            console.log( thrownError );
        }
    });
});

It got an error: jquery.min.js:4 Uncaught TypeError: Illegal invocation and then in the server side (php) the $_POST is null. 它得到一个错误:jquery.min.js:4 Uncaught TypeError:非法调用,然后在服务器端(php)中,$ _POST为空。

Please somebody help me. 请有人帮我。

To do a multipart/form-data request with jQuery.ajax, contentType and processData needs to be set to false. 要使用jQuery.ajax进行多部分/表单数据请求,必须将contentTypeprocessData设置为false。

Also the FormData constructor takes a form object not a jquery one 此外,FormData构造函数采用一个表单对象而不是一个jQuery对象

var support_ticket_form_data = new FormData($("#support_ticket_form")[0]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM