• Skip to main content
  • Select language
  • Skip to search
mozilla
Mozilla Developer Network
  • Sign in
    • Persona
    • GitHub
  • Web Platform
    Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • APIs / DOM
    • Apps
    • MathML
    References & Guides
    • Learn the Web
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • ...more docs
  • Mozilla Docs
    • Add-ons
    • Firefox
    • Firefox Marketplace
    • Firefox OS
    • Persona
  • Developer Tools
  • Feedback
    • Get Firefox help
    • Get web development help
    • Join the MDN community
    • Report a content problem
    • Report a bug
  •  
Add-ons
    • No translations exist for this article.
    • Add a translation
  • Edit
  • Advanced
    • History
    • Print this article
  1. MDN
  2. Mozilla
  3. Add-ons
  4. WebExtensions
  5. JavaScript APIs
  6. webRequest
  7. webRequest.onResponseStarted
Your Search Results

    webRequest.onResponseStarted

    In This Article
    1. Syntax
    2. addListener syntax
      1. Parameters
    3. Additional objects
      1. details
    4. Browser compatibility
    5. Examples

    Fired when the first byte of the response body is received.

    This event is informational only.

    SyntaxEdit

    browser.webRequest.onResponseStarted.addListener(function(
      details // object
    ) {...})
    browser.webRequest.onResponseStarted.removeListener(listener)
    browser.webRequest.onResponseStarted.hasListener(listener)

    Events have three functions:

    addListener(callback, filter, extraInfoSpec)
    Adds a listener to this event.
    removeListener(listener)
    Stop listening to this event. The listener argument is the listener to remove.
    hasListener(listener)
    Check whether listener is registered for this event. Returns true if it is listening, false otherwise.

    addListener syntaxEdit

    Parameters

    callback

    A function that will be called when this event occurs. The function will be passed the following arguments:

    details
    object. Details about the request. See details below.
    filter
    webRequest.RequestFilter. A filter that restricts the events that will be sent to this listener.
    extraInfoSpecOptional
    array of string. Extra options for the event. You can pass just one value:
    • "responseHeaders": include responseHeaders in the details object passed to the listener

    Additional objectsEdit

    details

    requestId
    string. The ID of the request. Request IDs are unique within a browser session, so you can use them to relate different events associated with the same request.
    url
    string. Target of the request.
    method
    string. Standard HTTP method: for example, "GET" or "POST".
    frameId
    integer. Zero if the request happens in the main frame; a positive value is the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (type is main_frame or sub_frame), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.
    parentFrameId
    integer. ID of the frame that contains the frame which sent the request. Set to -1 if no parent frame exists.
    tabId
    integer. The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.
    type
    webRequest.ResourceType. The type of resource being requested: for example, "image", "script", "stylesheet".
    timeStamp
    number. The time when this event fired, in milliseconds since the epoch.
    ipOptional
    string. The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.
    fromCache
    boolean. Indicates if this response was fetched from disk cache.
    statusCode
    integer. Standard HTTP status code returned by the server.
    responseHeadersOptional
    webRequest.HttpHeaders. The HTTP response headers that were received along with this response.
    statusLine
    string. HTTP status line of the response or the 'HTTP/0.9 200 OK' string for HTTP/0.9 responses (i.e., responses that lack a status line) or an empty string if there are no headers.

    Browser compatibilityEdit

    • Desktop
    • Mobile
    EdgeFirefoxChromeOpera
    Basic support?45.0Yes33
    Firefox
    Basic support48.0

    ExamplesEdit

    var target = "https://developer.mozilla.org/*";
    
    /*
    e.g.
    "https://developer.mozilla.org/en-US/Firefox/Releases"
    200
    HTTP/1.1 200 OK
    */
    function logResponse(responseDetails) {
      console.log(responseDetails.url);
      console.log(responseDetails.statusCode);
      console.log(responseDetails.statusLine);
    }
    
    chrome.webRequest.onResponseStarted.addListener(
      logResponse,
      {urls: [target]}
    );

    Acknowledgements

    This API is based on Chromium's chrome.webRequest API. This documentation is derived from web_request.json in the Chromium code.

    // Copyright 2015 The Chromium Authors. All rights reserved.
    //
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are
    // met:
    //
    //    * Redistributions of source code must retain the above copyright
    // notice, this list of conditions and the following disclaimer.
    //    * Redistributions in binary form must reproduce the above
    // copyright notice, this list of conditions and the following disclaimer
    // in the documentation and/or other materials provided with the
    // distribution.
    //    * Neither the name of Google Inc. nor the names of its
    // contributors may be used to endorse or promote products derived from
    // this software without specific prior written permission.
    //
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    Share:
    • Twitter
    • Facebook
    • Google+

    Document Tags and Contributors

    Tags: 
    • add-ons
    • Add-ons
    • API
    • Event
    • Extensions
    • Non-standard
    • onResponseStarted
    • Reference
    • WebExtensions
    • webRequest
     Contributors to this page: wbamberg
     Last updated by: wbamberg, Apr 14, 2016, 4:36:20 PM
    See also
    1. WebExtensions
    2. Getting started
      1. Prerequisites
      2. Anatomy of a WebExtension
      3. Packaging and Installation
      4. Walkthrough
      5. Examples
    3. Guides
      1. Content scripts
      2. Porting from Google Chrome
      3. Match patterns
      4. Debugging
      5. Chrome incompatibilities
    4. JavaScript APIs
      1. alarms
      2. bookmarks
      3. browserAction
      4. contextMenus
      5. cookies
      6. downloads
      7. events
      8. extension
      9. extensionTypes
      10. i18n
      11. idle
      12. notifications
      13. pageAction
      14. runtime
      15. storage
      16. tabs
      17. webNavigation
      18. webRequest
        1. Methods
          1. handlerBehaviorChanged()
        2. Properties
          1. MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
        3. Types
          1. BlockingResponse
          2. HttpHeaders
          3. RequestFilter
          4. ResourceType
          5. UploadData
        4. Events
          1. onAuthRequired
          2. onBeforeRedirect
          3. onBeforeRequest
          4. onBeforeSendHeaders
          5. onCompleted
          6. onErrorOccurred
          7. onHeadersReceived
          8. onResponseStarted
          9. onSendHeaders
      19. windows
    5. Manifest keys
      1. applications
      2. background
      3. browser_action
      4. content_scripts
      5. default_locale
      6. description
      7. icons
      8. manifest_version
      9. name
      10. options_ui
      11. page action
      12. permissions
      13. version
      14. web_accessible_resources
    6. Add-on SDK
    7. Getting started
      1. Installation
      2. Getting started
      3. Troubleshooting
    8. High-Level APIs
      1. addon-page
      2. base64
      3. clipboard
      4. context-menu
      5. hotkeys
      6. indexed-db
      7. l10n
      8. notifications
      9. page-mod
      10. page-worker
      11. panel
      12. passwords
      13. private-browsing
      14. querystring
      15. request
      16. selection
      17. self
      18. simple-prefs
      19. simple-storage
      20. system
      21. tabs
      22. timers
      23. ui
      24. url
      25. widget
      26. windows
    9. Low-Level APIs
      1. /loader
      2. chrome
      3. console/plain-text
      4. console/traceback
      5. content/content
      6. content/loader
      7. content/mod
      8. content/symbiont
      9. content/worker
      10. core/heritage
      11. core/namespace
      12. core/promise
      13. dev/panel
      14. event/core
      15. event/target
      16. frame/hidden-frame
      17. frame/utils
      18. fs/path
      19. io/byte-streams
      20. io/file
      21. io/text-streams
      22. lang/functional
      23. lang/type
      24. loader/cuddlefish
      25. loader/sandbox
      26. net/url
      27. net/xhr
      28. places/bookmarks
      29. places/favicon
      30. places/history
      31. platform/xpcom
      32. preferences/event-target
      33. preferences/service
      34. remote/child
      35. remote/parent
      36. stylesheet/style
      37. stylesheet/utils
      38. system/child_process
      39. system/environment
      40. system/events
      41. system/runtime
      42. system/unload
      43. system/xul-app
      44. tabs/utils
      45. test/assert
      46. test/harness
      47. test/httpd
      48. test/runner
      49. test/utils
      50. ui/button/action
      51. ui/button/toggle
      52. ui/frame
      53. ui/id
      54. ui/sidebar
      55. ui/toolbar
      56. util/array
      57. util/collection
      58. util/deprecate
      59. util/list
      60. util/match-pattern
      61. util/object
      62. util/uuid
      63. window/utils
    10. Firefox for Android
    11. Getting started
      1. Walkthrough
      2. Debugging
      3. Code snippets
    12. APIs
      1. Accounts.jsm
      2. BrowserApp
      3. HelperApps.jsm
      4. Home.jsm
      5. HomeProvider.jsm
      6. JavaAddonManager.jsm
      7. NativeWindow
      8. Notifications.jsm
      9. PageActions.jsm
      10. Prompt.jsm
      11. RuntimePermissions.jsm
      12. Snackbars.jsm
      13. Sound.jsm
      14. Tab
    13. Legacy
    14. Restartless extensions
      1. Overview
    15. Overlay extensions
      1. Overview
    16. Themes
    17. Lightweight themes
      1. Overview
    18. Complete themes
      1. Overview
    19. Publishing add-ons
    20. Guides
      1. Signing and distribution overview
      2. Submit an add-on
      3. Review policies
      4. Developer agreement
      5. Featured add-ons
      6. Contact addons.mozilla.org
    21. Community and support
    22. Channels
      1. Add-ons blog
      2. Add-on forums
      3. Stack Overflow
      4. Development newsgroup
      5. IRC Channel

    © 2005-2016 Mozilla Developer Network and individual contributors.

    Content is available under these licenses.

    • About MDN
    • Terms
    • Privacy
    • Cookies
    • Contribute to the code