5

파이어 폭스 WebExtensions 가지고 노는 동안 나는 간단한 만든 추가 기능에 그 특정 POST 요청을 취소하고 그 PARAMS 읽파이어 폭스 WebExtensions : 취소 얻을 수없는 요청 데이터

의 manifest.json을

{ 
    "description": "Canceled webRequests data", 
    "manifest_version": 2, 
    "name": "webRequest-demo", 
    "version": "1.0", 

    "permissions": [ 
    "webRequest", 
    "webRequestBlocking", 
    "http://kamil.hism.ru/pocs/*" 
    ], 

    "background": { 
    "scripts": ["background.js"] 
    } 
} 

background.js

var pattern = "http://kamil.hism.ru/pocs/simple_form_action"; 

function cancel(requestDetails) { 
    console.log("Canceling: " + requestDetails.url); 
    console.log(requestDetails.requestBody.formData.some_field) 
    // debugger 
    return { cancel: true }; 
} 

browser.webRequest.onBeforeRequest.addListener(
    cancel, 
    { urls:[pattern] }, 
    ["requestBody", "blocking"] 
); 

형태로 대상 페이지이다 locat입니다 여기에 : http://kamil.hism.ru/pocs/simple_form.html

requestDetailsformData의 모든 데이터가 전달 된 객체를 포함해야합니다. Chrome에서는 제대로 작동하지만 Firefox의 requestBody에는 ArrayBuffer 객체가있는 raw 배열 만 포함되어 있습니다. String.fromCharCode.apply(null, new Uint16Array(requestDetails.requestBody.raw[0]));을 사용하여 문자열로 변환하려고했지만 빈 문자열을 반환합니다.

질문 : Firefox WebExtension 애드온을 사용하여 해당 문제를 해결하고 취소 된 요청에서 모든 데이터를 얻는 방법을 아는 사람이 있습니까? 아마도 Mozilla의 WebExtensions 구현에있어 일부 버그 일 수 있습니까?

+0

'firefox' 브라우저 버전을 사용 하시나요? –

+0

@pritishvaidya 최신 firefox dev 에디션 버전 52.0a2 (2017-01-09) (64-bit) –

+0

'content header'를 수정하고'Content-Type : text/html로 설정해야 할 수도 있습니다. ; charset = utf-8' 다음을 사용하여 [here] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest/HttpHeaders) –

답변

1

Mozilla 커뮤니티의 help으로 밝혀졌습니다. Firefox WebExtensions의 버그입니다. 내가 관련된 버그질라의 정확한 릴리스 노트 또는 버그를 찾을 수 있지만, 파이어 폭스 야간 빌드 (53.0a)이 문제하지 않습니다 박에서

enter image description here 희망이 곧 변경 사항을 것 릴리스 채널에 병합됩니다.

+0

아, 확인하는 것을 잊었습니다. –