使用xmlHttpRequest(cordova平台)上传iOS文件

时间:2014-10-21 18:32:59

标签: javascript ajax cordova xmlhttprequest

我正在尝试将iphone的文档目录中的xlsx文件上传到服务。

  1. 我正在使用xmlHttpRequest从目录加载文件作为arraybuffer
  2. 将数组缓冲区转换为Uint8Array
  3. 创建一个formData对象并将Uint8Array数组对象追加到它
  4. 发送ajax发布请求以上传服务
  5. 当我这样做时,我得到状态代码414的响应和错误消息作为不支持的媒体类型。我相信这是由于我上传的文件,并且它的格式不符合要求。

    能帮助我找出错误的地方,还是有其他方法可以做同样的事情?

    var serverUrl = "http://3.1.177.75/ExcelIO/xsapi/import/";
    var request = new XMLHttpRequest();
    var classRoot = this;
    var xlsxFile = 'points to document directory of iphone where xlsx file is present';
    request.open("GET", xlsxFile, true);
    request.responseType = "arraybuffer";
    request.onload = function(e) {
        var arraybuffer = request.response;
        var filedata = new Uint8Array(arraybuffer);
        var formData = new FormData();
        formData.append("ExcelOpenFlags", excelOpenFlags);
        formData.append("file", filedata);
        $.ajax({
               url: serverUrl,
               type: 'POST',
               success: function completeHandler(data, textStatus, jqXHR) {
               if (successCallback) {
               alert("success");
               }
               },
               error: function errorHandler(jqXHR, textStatus, errorThrown) {
                    alert("error "+JSON.stringify(jqXHR) + " -- "+errorThrown);
               },
               data: formData,  
               cache: false,  
               contentType: false,
               processData: false,
               headers: {  
               "Accept": "application/json"
               }
               });
    };
    request.send();
    

0 个答案:

没有答案