是否可以使用jquery ajax调用伪造multipart / form-data帖子?

时间:2012-03-15 01:43:20

标签: javascript jquery ajax

我希望能够将multipart / form-data消息发回服务器。现在我知道我不能直接用ajax调用发送文件,我不想发送任何实际文件。我想格式化帖子,以便它使用this is the file data字符串模拟文件传输,就好像它是文件的内容一样,test.txt就好像它是文件名一样。

例如在后端(php)上我想使用echo $_FILES['uploadedfile']['name']并查看test.txt

我假设我不得不捣乱发送的标题,但不确定我必须设置的是什么。我还假设我必须以不同于我通过ajax调用发送的其他数据来处理伪文件数据。现在我的ajax调用看起来像这样:

        $.ajax({
            beforeSend: function(req) {
                req.setRequestHeader("Accept", '');
                req.setRequestHeader("Accept", $('#type').val());
            },
            'url': $('#url').val(),
            'type': $('#verb').val(),
            'data': data,
            'mimeType': 'multipart/form-data',
            'complete': function (jqXHR, textStatus) {
                var msg = "Data: " + dump(data);
                msg += "<br /><br />Status: " + jqXHR.status + " (" + jqXHR.statusText + " - " + textStatus + ")<br />";
                msg += jqXHR.getAllResponseHeaders().replace(/\n/g, "<br />");
                msg += "---<br />" + jqXHR.responseText;
                $('#results').html(msg);
            }
        });

1 个答案:

答案 0 :(得分:0)

您可以使用FormData修补jquery,https://github.com/francois2metz/html5-formdata 并看到这个问题Sending multipart/formdata with jQuery.ajax