2016-12-15 24 views
0

我有一个图像,我通过ajax调用发送到休息服务。我还需要发送三个整数值来标识图像的形式。这一切都有效,除非标识符为空。在余下的一面,空值被转换为一个字符串。但是,我在java服务上设置的数据类型是Integers,因此服务调用会弹出。从AJAX传递整数到休息

可能只需将Java中的其余输入参数更改为字符串,然后将它们转换为Java端的整数,但这看起来像是黑客攻击。

formData.append('file', file); 
formData.append('formId', this.props.builder.formId); 
formData.append('formVersionId', this.props.builder.formVersionId); 
formData.append('formIndex', this.props.builder.formIndex); 

$.ajax({ 
    url: URL.BUILDER_URL + '/megaUpload', 
    type: 'POST', 
    data : formData, 
    cache : false, 
    contentType : false, 
    processData : false, 
}); 
+0

当标识符为空时,是否存在要发送的默认值?如果它们为空,忽略表单数据中的字段是否可以接受? – Bastiaanus

+1

当你使用console.log时,你的formData对象是什么样的? –

回答

1

可以防止调用它们被呼叫之前,使用此条件发送之前:

typeof formId !== 'number' 

或检查它是否为空,将其转换到零,避免通话以及有:

typeof formId === 'undefined' || !formId 

如果有一个表单,您可以要求一个数字,默认值为零。请注意,这只适用于支持html5的浏览器:

<input type="number" min="0" name="formId" />