//policy 要通過base64編碼, signature 還要進一步處理,能夠查閱官方文檔 function OssUpload(param, file, fileName, callBack) { var policyBase64 = Base64.encode(param.policy); var signature = param.signature.split(':')[1]; var filePathName = param.filePath + "/" + param.fileName; var fileFullName = param.contentHostName + "/" + filePathName; var request = new FormData(); request.append('OSSAccessKeyId', param.accessKeyId); request.append('policy', policyBase64); request.append('Signature', signature); request.append('key', filePathName); for (var i in param.metaDatas) { request.append(i, param.metaDatas[i]); } request.append('file', file); request.append('submit', "Upload to OSS"); $.ajax({ url: param.contentHostName, data: request, processData: false, cache: false, async: false, contentType: false, //關鍵是要設置contentType 爲false,否則發出的請求頭 沒有boundary //該參數是讓jQuery去判斷contentType type: "POST", success: function (data, textStatus, request) { if (textStatus === "nocontent") { callBack(fileFullName); alert("success!"); } else { alert(textStatus); } } }); }