2016-12-15 23 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" />