jQuery Form插件 - 文件上传没有数据?

时间:2022-12-09 19:43:43

I've been struggling a bit with the jQuery Form plugin. I want to create a file upload form that posts the data (JSON, from the chosen file) into a REST service exposed by a servlet. The URL for the POST is calculated from what the user chooses in a SELECT dropdown. When the upload is complete, I want to notify the user immediately, AJAX-style.

我一直在努力使用jQuery Form插件。我想创建一个文件上载表单,将数据(JSON,从所选文件)发布到servlet公开的REST服务中。 POST的URL是根据用户在SELECT下拉列表中选择的内容计算的。上传完成后,我想立即通知用户,AJAX风格。

The problem is that the POST header has a Content-Length of 0 and contains no data. I would appreciate any help!

问题是POST标头的Content-Length为0并且不包含任何数据。我将不胜感激任何帮助!

<html>
<head>
<script type="text/javascript" src="js/jquery-1.4.2.min.js">/* ppp */</script>
<script type="text/javascript" src="js/jquery.form.js">/* ppp */</script>

<script type="text/javascript">

function cb_beforesubmit (arr, $form, options) {
    // This should override the form's action attribute
    options.url = "/rest/services/" + $('#selectedaction')[0].value;
    return true;
}

function cb_success (rt, st, xhr, wf) {
    $('#response').html(rt + '<br>' + st + '<br>' + xhr);
}

$(document).ready(function () {
    var options = {
        beforeSubmit: cb_beforesubmit,
        success: cb_success,
        dataType: 'json',
        contentType: 'application/json',
        method: 'POST',
    };
    $('#myform').ajaxForm(options);

    $.getJSON('/rest/services',  function (data, ts) {
        for (var property in data) {
            if (typeof property == 'string') {
                $('#selectedaction').append('<option>' + property + '</option>');
            }
        }
    });

});

</script>

</head>
<body>
<form id="myform" action="/rest/services/foo1" method="POST" enctype="multipart/form-data">
<!-- The form does not seem to submit at all if I don't set action to a default value? !-->
<select id="selectedaction">
</select>
<input type="file" value="Choose"/>
<input type="submit" value="Submit" />
</form>

<div id="response">
</div>

</body>
</html>

1 个解决方案

#1


2  

Your file input needs a "name".

您的文件输入需要“名称”。

#1


2  

Your file input needs a "name".

您的文件输入需要“名称”。