2014-11-02 63 views
0

我想創建ajax調用併發送數據與文件和其他變量,我也使用django,如果它的幫助。如何發送ajax請求文件與其他字符串的變量?

我嘗試:

js文件:

$("#save-new-request-testBtn").click(function(){ 
var project = $('#project').val(); 
var newRequestStreams = $('#newRequestStreams').val(); 
var request_bot_file = $('#request_bot_file')[0].files; 

submit_new_request(project,newRequestStreams,request_bot_file);  

});

function submit_new_request(project,newRequestStreams,request_bot_file){ 
url= "add/submit"; 
console.log(project); 
var new_data; 

csfr(); 
$.ajax({ 
    async:false, 
    url: url, 
    type: "POST", 
    enctype: 'multipart/form-data', 
    data: ({project:project,newRequestStreams:newRequestStreams,request_bot_file :request_bot_file }), 
    success: function(data){ 
     new_data= data; 

     console.log(data); 
    }, 
    error: function(xhr, status, error) { 
        $("#formError").html(xhr.responseText); 
        console.log(xhr.responseText); 

       } 
}); 
console.log('fgcfg'); 

return new_data; 

} 

問題是與選擇的文件: 未捕獲InvalidStateError:無法讀取「HTMLInputElement」的「selectionDirection」屬性:輸入元素的類型(「文件」)不支持選擇。

任何好的建議如何使它工作?

感謝, CFIR

+0

你的問題是什麼? – 2014-11-02 09:02:57

+0

這是正確的方法嗎?因爲它不工作? – cfircoo 2014-11-02 09:06:25

+0

哪部分工作不正確? – 2014-11-02 09:07:35

回答

0

您需要下載JSON.js或JSON2.js這裏https://github.com/douglascrockford/JSON-js。 並執行以下操作:

var myDataToSend = JSON.stringify(
    { 
     project: project, 
     newRequestStreams : newRequestStreams, 
     request_bot_file : request_bot_file 
    } 
); 

而阿賈克斯後:

$.ajax({ 
    url : url, 
    type : "POST", 
    enctype : 'multipart/form-data', 
    data : 'data=' + myDataToSend , 
    success : function(){}, 
    error : function(){}, 
}) 

什麼語言後端,例如PHP,你可以這樣做:

$jsonArr = json_decode($_POST['data']); 

獲取相當於json_decode用你的語言。 Python將是:

# Python 2.6+ 
import json 
result = json.loads(post_variable_data_from_ajax) 
+0

OP標籤Django,所以後端似乎是python。 – 2014-11-02 10:47:55

+0

問題與文件的選擇有關:Uncaught InvalidStateError:無法從「HTMLInputElement」中讀取'selectionDirection'屬性:輸入元素的類型('文件')不支持選擇。 – cfircoo 2014-11-02 11:53:30

+0

試試這個:https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects – poashoas 2014-11-02 12:17:31

相關問題