0

Need to override the native fetch call which is written in the third-party application.

I want to intercept the fetch call using the chrome extension.

Is it possible? If yes, could you please help me with this.

Here is my sample code.

mainfest.json

{
"manifest_version": 2,
    "name": "[CCG]",
    "description": "[Replacing CCG]",
    "version": "1.0",
    "content_scripts": [
        {
            "matches": [
                "file:///C*"
            ],
            "js": [
                "content.js"
            ],
            "run_at": "document_start",
            "all_frames": true
        }
    ]
}

content.js Test 1

const constantMock = window.fetch;
 window.fetch = function() {
  console.log(arguments);

    return new Promise((resolve, reject) => {
        constantMock.apply(this, arguments)
            .then((response) => {
                if(response.url.indexOf("/me") > -1 && response.type != "cors"){
                    console.log(response);
                    // do something for specificconditions
                }
                resolve(response);
            })
            .catch((error) => {
                reject(response);
            })
    });
 }

HTML

   <input type="button" value="Submit" onclick="submit()">

  <script>
   
    function submit() {
    
    
      fetch('https://jsonplaceholder.typicode.com/posts').then(function (response) {
      
    // The API call was successful!
    return response.json();
    }).then(function (data) {
    // This is the JSON from our response
    console.log(data);
    }).catch(function (err) {
    // There was an error
    console.warn('Something went wrong.', err);
    });
      
    }


  </script>
</body>

If we added the override fetch method inside the html page script, which is overdidng. But here i don't have the contol on thirdy party application, So am planning to use chrome extenssion and unable to handle it. Help me on this.

Srini
  • 13
  • 1
  • 4
  • https://developer.chrome.com/extensions/webRequest – sideshowbarker Jun 22 '20 at 05:58
  • 1
    To override `window.fetch` you need to do it in [page context](/a/9517879), example: [Chrome extension to read HTTP response](https://stackoverflow.com/a/48134114) – wOxxOm Jun 22 '20 at 06:05

0 Answers0