Wim Pruiksma
Wim Pruiksma

Reputation: 598

Modify XMLHttpRequest data

I'm stuck on modifying the object. Is it possible to modify XMLHttpRequest and is it possible to implement it into my code? I have searched a lot and can't find the answer or an tuturial.

code:

(function() {
    var origOpen = XMLHttpRequest.prototype.open;

    XMLHttpRequest.prototype.open = function(data, url, async) {
        data = data.toLowerCase();
        if(data === 'post' || data === 'get'){
            this.addEventListener('load', function() {
                url = url.toString();

                if(String(url)){
                    var newUrl = url.split('index.php?id=').pop();
                    newUrl = newUrl.split('&');
                    if(isNumber(newUrl[0]) && newUrl[0] !== '115' && newUrl[0] !== '9' && newUrl[0] !== '152' && newUrl[0] !== '143' && newUrl[0] !== '2' && newUrl[0] !== '96'){
                       var checked = AccessDenied(newUrl[0]);
                       if(checked === false){

                           //Here comes code to modify data

                       }
                    }
                }
            });
        };
        origOpen.apply(this, arguments);
    };
})();

Upvotes: 1

Views: 232

Answers (1)

user9258013
user9258013

Reputation:

This, approach you made does make conflicts with the in-bulit open method! So in this case the in-built wins sits as the default method. You should name to open2 or Open or _open or as you like to aviod conflicts. But remember you can't use any method that's already in XMLHttpRequest! Here's an example of it.

XMLHttpRequest.prototype._open = function(data, url, async) { //...code };

Upvotes: 1

Related Questions