构建正确的表单数据

时间:2014-11-17 11:46:29

标签: javascript jquery ajax kendo-ui cmis

我正在尝试使用Kendo UI进行文件上传。该文件存储在ECM中,我使用浏览器绑定上传到CMIS。我原来的AJAX功能就像:

    $.ajax({
        url: 'MY CMIS URL',
        type: 'POST',
        data: new FormData($('#myForm')[0]),
        processData: false,
        contentType: false,
        success: function () {
            alert("Document Uploaded");
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status + " " + thrownError);
        }
    });

所以我的表单上有CMIS属性 - 当我看到fiddler时,这成功地被添加到我的请求中 - 如图所示:

enter image description here

但是现在我使用Kendo UI进行上传,代码如下:

    $("#target").kendoUpload({
        multiple: false,
        async: {
            saveUrl: 'MY CMIS URL',
            autoUpload: true,
            withCredentials: false,
        },
        upload: function (e) {
            $('#propertyValue_0_').val(e.files[0].name);
           // e.data = new FormData($('#uploadForm')[0]); - did not work
            var formData = $('#uploadForm').serializeArray();
            e.data = formData;
        }
    });

首先,我的数据集类似于我的AJAX调用,但这不起作用。执行序列化并设置e.data = formData;更接近我的需要。当我检查提琴手请求时,我会看到以下内容:

enter image description here

如果我在Dev Tools中设置断点,我可以看到formData变量包含名称和值为“cmisaction”“createDocument”的对象数组

enter image description here  和其余的相同,但在我的提琴手跟踪中,我正在发送名称=“0”和[对象对象]。

如何正确设置e.data到formData中的名称和值?

0 个答案:

没有答案