鍍金池/ 問答/云計算  HTML5  Java  HTML/ Ajax請求后臺,后臺返回二進(jìn)制數(shù)據(jù),JS應(yīng)該如何解析?

Ajax請求后臺,后臺返回二進(jìn)制數(shù)據(jù),JS應(yīng)該如何解析?

后臺代碼片段:

UtilHttp.streamContentToBrowser(response, UtilObject.getBytes(list), "application/octet-stream");

后臺list:

clipboard.png

把list轉(zhuǎn)byte[],再通過io流輸出到瀏覽器,那么在前端通過JS改如何解析呢?
前臺Ajax請求代碼如下:

$.ajax({
        url: "../wfdurl/urlMenuReader.do",
        type: "post",
        async: false,
        data: {},
        dataType: "text",
        success: function(result) {
          console.log(result);
        },
        error: function(data) {
          alert("服務(wù)器繁忙,請稍后再試...");
        }
});

dataType: "text",得到的數(shù)據(jù)是亂碼,如下圖:

clipboard.png

求大牛指點啊...

根據(jù)大家指點,改成了原生XMLHttpRequest

      var oReq = new XMLHttpRequest();
      oReq.open("POST", "../wfdurl/urlMenuReader.do", true);
      oReq.responseType = "arraybuffer";

      oReq.onload = function (oEvent) {
        var arrayBuffer = oReq.response; // 注意:不是oReq.responseText
        if (arrayBuffer) {
          var byteArray = new Uint8Array(arrayBuffer);
          console.log('byteArray:' + byteArray);
          for (var i = 0; i < byteArray.byteLength; i++) {
            //...
          }
        }
      };

      oReq.send("type=" + obj.wFType + "&fornocache=QL8M4416");

byteArray: (不是想要的后臺list

clipboard.png

回答
編輯回答
短嘆

前段不要用ajax調(diào)用就可以直接拿到文件了
或者前段用Blob對象

這個問題去前段問啊

2017年11月22日 05:04
編輯回答
放開她

后端在開玩笑鑒定完畢,二進(jìn)制流可能是文本可能視頻可能是圖片怎么解析。

2017年5月3日 22:16
編輯回答
雅痞

用原生的XMLHttpRequest,設(shè)置返回數(shù)據(jù)為buffer

2018年2月8日 03:06
編輯回答
伴謊

返回的數(shù)據(jù)里還有java.util這種?后臺返回寫崩了吧?(嗯,可以把后臺按在地上摩擦了……)

2018年4月2日 05:20