2013-09-08 41 views
6

tôi đang cố gắng để có được dữ liệu trong bài viết một phần mở rộng chrome đơn giản, nhưng nó không hoạt động:Làm thế nào để có được dữ liệu bài trong phần mở rộng chrome

chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) { 
if (details.method == "POST") { 
      var postData=details.requestBody.raw; 
      console.log(postData); 
     } 
return {requestHeaders: details.requestHeaders}; 
}, 
{urls: ["<all_urls>"]}, 
["blocking", "requestHeaders"]); 

Tôi đang sử dụng trang web này để kiểm tra phần mở rộng:

https://mobile.onlinesbi.com/sbidownloader/DownloadApplication.action

+1

thể trùng lặp của [API Chrome.webRequest - requestBody luôn xác định] (http://stackoverflow.com/questions/18017947/chrome-webrequest-api-requestbody-always-undefined) –

Trả lời

9

Tôi biết điều này đã được hỏi cách đây rất lâu, nhưng trong trường hợp bất kỳ ai khác gặp phải vấn đề tương tự này, tôi đã tìm thấy câu trả lời.

Bạn đang sử dụng người nghe onBeforeSendHeaders, khi người nghe chỉ có hỗ trợ xem dữ liệu POST là onBeforeRequest. Tuy nhiên, bạn cũng cần phải cung cấp một extraInfoSpec của "requestBody" cho đối số thứ ba của .addListener. Một ví dụ dưới đây.

/* The Web Request API */ 
const WEB_REQUEST = chrome.webRequest; 

WEB_REQUEST.onBeforeRequest.addListener(
    function(details) { 
     if(details.method == "POST") 
      console.log(JSON.stringify(details)); 
    }, 
    {urls: ["<all_urls>"]}, 
    ["blocking", "requestBody"] 
); 
Các vấn đề liên quan