修改XMLHttpRequest数据

时间:2016-02-15 12:42:15

标签: javascript ajax xmlhttprequest

我坚持修改对象。是否可以修改XMLHttpRequest并且可以将其实现到我的代码中吗?我搜索了很多,无法找到答案或tuturial。

代码:

(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);
    };
})();

1 个答案:

答案 0 :(得分:1)

您所采用的这种方法与bulit内开放方法确实存在冲突!因此,在这种情况下,内置胜算是默认方法。您应命名为open2Open_open或根据需要避免冲突。但是请记住,您不能使用XMLHttpRequest中已经存在的任何方法!这是一个例子。

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