5

Во время воспроизведения с Firefox WebExtensions Я создал простую надстройку, которая отменяет определенный запрос POST и читает его Params:Firefox 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"] 
); 

целевая страница с формой является нахо ed here: http://kamil.hism.ru/pocs/simple_form.html

requestDetails содержит requestBody, который должен содержать formData объект со всеми переданными данными. В Chrome он работает хорошо, но в Firefox requestBody содержит только массив raw с объектом ArrayBuffer. Я попытался преобразовать его в строку, используя String.fromCharCode.apply(null, new Uint16Array(requestDetails.requestBody.raw[0]));, но он возвращает пустую строку.

Итак, вопрос: кто-нибудь знает, как решить эту проблему и получить все данные от аннулированного запроса с помощью дополнения Firefox WebExtension? Может быть, это ошибка в реализации WebExtensions Mozilla?

+0

который 'firefox' версия браузера вы используете? –

+0

@pritishvaidya последняя версия firefox dev версия 52.0a2 (2017-01-09) (64-разрядная версия) –

+0

Я думаю, вам может понадобиться * изменить * заголовок содержимого и установить его в 'Content-Type: text/html ; charset = utf-8', используя следующие [здесь] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest/HttpHeaders) –

ответ

1

С help сообщества Mozilla выяснилось, что это на самом деле ошибка в Firefox WebExtensions. Несмотря на то, что я не мог найти точное релиз примечания или ошибку в Bugzilla, связанный с ней, Firefox Nightly сборки (53.0a) не имеет эту проблему:

enter image description here

Надеется, вскоре эти изменения от Nightly бы быть объединены в канал Release.

+0

Ох, забыл проверить его. –

 Смежные вопросы

  • Нет связанных вопросов^_^