我在AJAX POST中設置我的標題,並且POSTing正常工作,但請求有效內容主體沒有按照我的意圖格式化。未正確格式化Ajax請求有效內容體
for (var i = 0; i < files.length; i++) {
var boundary = '--AJAX--' + b.util.randomString();
var fileName = files[i].fileName;
var fileSize = files[i].fileSize;
var fileType = files[i].type;
var parts = [];
var part = '';
part += 'Content-Disposition: file;' + CRLF;
part += 'name= "' + fieldName + '"; ' + CRLF;
part += 'filename="' + fileName + '"' + CRLF;
part += 'Content-Type: ' + fileType + ';' + CRLF;
part += 'name="' + 'timestamp' + '"' + CRLF + CRLF;
part += getDateTime() + CRLF;
parts.push(part);
var data = '--' + boundary + CRLF;
data += parts.join('--' + boundary + CRLF);
data += '--' + boundary + '--' + CRLF;
// Wrap in a closure to preserve our increment value [i]
(function(i) {
files = $.extend(true, {}, files);
$.ajax({
url: $form,
type: 'POST',
beforeSend: function(xhr) {
xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);
xhr.setRequestHeader('X-File-Name', fileName);
xhr.setRequestHeader('X-File-Size', fileSize);
xhr.setRequestHeader('X-File-Type', fileType);
},
data: {
userfile: data
},
success: function(data) {
},
error: function(e) {
}
});
})(i);
}
越來越格式化爲:
/*
userfile=--AJAX-----------------------------2Bw0sHPkE4%0D%0AContent-Disposition%3A+file%3B%0D%0Aname%3D+%22userfile%5B%5D%22%3B+filename%3D%22MPK0l.jpg%22%0D%0AContent-Type%3A+image%2Fjpegname%3D%22timestamp%22%0D%0A%0D%0A1330556315.828%0D%0A--AJAX-----------------------------2Bw0sHPkE4--%0D%0A
*/
這顯然是無視我的所有換行符和回車。
我需要明確地創建我的xhr對象並使用xhr.send()嗎?或者我可以使用jQuery的ajax()嗎?
那麼它是什麼?我必須自己製作xhr對象,或者我可以使用jQuery的ajax()實用程序? – 2012-03-01 22:01:24
如果這是不可能的,那麼在jQuery和簡單的xhr中都是不可能的。如果你想在後臺發送文件,使用'form target + iframe'。 – kirilloid 2012-03-01 22:09:48