파이어 폭스 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
requestDetails
은 formData
의 모든 데이터가 전달 된 객체를 포함해야합니다. Chrome에서는 제대로 작동하지만 Firefox의 requestBody
에는 ArrayBuffer 객체가있는 raw
배열 만 포함되어 있습니다. String.fromCharCode.apply(null, new Uint16Array(requestDetails.requestBody.raw[0]));
을 사용하여 문자열로 변환하려고했지만 빈 문자열을 반환합니다.
질문 : Firefox WebExtension 애드온을 사용하여 해당 문제를 해결하고 취소 된 요청에서 모든 데이터를 얻는 방법을 아는 사람이 있습니까? 아마도 Mozilla의 WebExtensions 구현에있어 일부 버그 일 수 있습니까?
'firefox' 브라우저 버전을 사용 하시나요? –
@pritishvaidya 최신 firefox dev 에디션 버전 52.0a2 (2017-01-09) (64-bit) –
'content header'를 수정하고'Content-Type : text/html로 설정해야 할 수도 있습니다. ; charset = utf-8' 다음을 사용하여 [here] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest/HttpHeaders) –