这是一个迟到的答案,但这是我在调查一天后发现的……
如果您的< input type =“file”>在JIRA对话框中,然后使用ajax提交表单.这就是请求的内容类型是“application / x-www-form-urlencoded;”的原因.尝试在新的浏览器选项卡中打开链接,此问题就会消失.您将在服务器中收到MultiPartRequestWrapper,因为表单是正常提交的(没有ajax).
1)扩展JIRA.FormDialog
我的第一种方法是扩展JIRA.FormDialog组件以发送带有文件和其他表单输入的FormData对象.这很有效,服务器收到了multipart / form-data请求.
(编辑)
问题是返回对话框的响应.我找不到办法做到这一点.响应总是返回一个带有页眉和页脚的完整JIRA页面,因为不知何故服务器不知道我在Dialog的上下文中.
我发现问题是什么.内联和装饰器的参数不被服务器reed(附加到FormData对象).我尝试将这些参数添加到操作URL并且它有效:
这是代码:
var TEST = window.TEST || {};
TEST.FormDialog = JIRA.FormDialog.extend({
_getFormDataAsObject: function() {
var data = new FormData(this.$form[0]);
data.append('inline', true);
data.append('decorator', 'dialog');
return data;
}
});
JIRA.Dialogs.uploadFile = new T