第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

通過HTTP在JavaScript中發(fā)送二進(jìn)制數(shù)據(jù)

通過HTTP在JavaScript中發(fā)送二進(jìn)制數(shù)據(jù)

慕田峪4524236 2019-11-14 10:05:19
我正在嘗試將HTTP POST發(fā)送到網(wǎng)絡(luò)上的設(shè)備。不幸的是,我想將四個(gè)特定字節(jié)的數(shù)據(jù)發(fā)送到設(shè)備,但我似乎只能將字符串發(fā)送到設(shè)備。反正有使用JavaScript發(fā)送原始二進(jìn)制文件嗎?這是我用來執(zhí)行POST的腳本,除非我在數(shù)據(jù)字段中輸入字符串,否則它目前不會(huì)運(yùn)行。有任何想法嗎?(function ($) {   $.ajax({      url: '<IP of Address>',      type: 'POST',      contentType: 'application/octet-stream',      //data:'253,0,128,1',      data:0xFD008001,      crossDomain: true   });})(jQuery);
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

默認(rèn)情況下,jQuery序列化數(shù)據(jù)(傳遞的data屬性)-這意味著將0xFD008001 數(shù)字作為“ 4244668417” 字符串(10個(gè)字節(jié),而不是4個(gè))傳遞給服務(wù)器,這就是服務(wù)器將其視為未按預(yù)期方式處理的原因。


有必要通過將$.ajaxproperty 設(shè)置processData為來防止這種行為false:


默認(rèn)情況下,作為對(duì)象傳遞給data選項(xiàng)的數(shù)據(jù)(從技術(shù)上講,不是字符串)將被處理并轉(zhuǎn)換為查詢字符串,以適合默認(rèn)的內(nèi)容類型“ application / x-www-form-urlencoded” 。如果要發(fā)送DOMDocument或其他未處理的數(shù)據(jù),請(qǐng)將此選項(xiàng)設(shè)置為false。


...但這只是整個(gè)故事的一部分:XMLHttpRequest.send實(shí)現(xiàn)有其自身的局限性。我想,這就是為什么您最好的選擇是使用TypedArrays制作自己的序列化程序:


// Since we deal with Firefox and Chrome only 

var bytesToSend = [253, 0, 128, 1],

    bytesArray = new Uint8Array(bytesToSend);


$.ajax({

   url: '%your_service_url%',

   type: 'POST',

   contentType: 'application/octet-stream',  

   data: bytesArray,

   processData: false

});

或者根本不使用jQuery:


var bytesToSend = [253, 0, 128, 1],

    bytesArray = new Uint8Array(bytesToSend);


var xhr = new XMLHttpRequest();

xhr.open('POST', '%your_service_url%');

xhr.setRequestHeader('Content-Type', 'application/octet-stream');

xhr.send(bytesArray);


查看完整回答
反對(duì) 回復(fù) 2019-11-14
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用atob()和btoa():


var data = new Uint32Array(1);

data[0] = 0xFD008001;

atob(data)

這會(huì)將您的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為可以作為文本發(fā)送的base64字符串。


查看完整回答
反對(duì) 回復(fù) 2019-11-14
  • 3 回答
  • 0 關(guān)注
  • 655 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)