久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<i id='3swiV'><tr id='3swiV'><dt id='3swiV'><q id='3swiV'><span id='3swiV'><b id='3swiV'><form id='3swiV'><ins id='3swiV'></ins><ul id='3swiV'></ul><sub id='3swiV'></sub></form><legend id='3swiV'></legend><bdo id='3swiV'><pre id='3swiV'><center id='3swiV'></center></pre></bdo></b><th id='3swiV'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='3swiV'><tfoot id='3swiV'></tfoot><dl id='3swiV'><fieldset id='3swiV'></fieldset></dl></div>

<legend id='3swiV'><style id='3swiV'><dir id='3swiV'><q id='3swiV'></q></dir></style></legend>

  1. <tfoot id='3swiV'></tfoot>

    <small id='3swiV'></small><noframes id='3swiV'>

      • <bdo id='3swiV'></bdo><ul id='3swiV'></ul>

      如何修改另一個(gè)函數(shù)接收到的 XMLHttpRequest 響應(yīng)文

      How can I modify the XMLHttpRequest responsetext received by another function?(如何修改另一個(gè)函數(shù)接收到的 XMLHttpRequest 響應(yīng)文本?)

      <i id='A59Vz'><tr id='A59Vz'><dt id='A59Vz'><q id='A59Vz'><span id='A59Vz'><b id='A59Vz'><form id='A59Vz'><ins id='A59Vz'></ins><ul id='A59Vz'></ul><sub id='A59Vz'></sub></form><legend id='A59Vz'></legend><bdo id='A59Vz'><pre id='A59Vz'><center id='A59Vz'></center></pre></bdo></b><th id='A59Vz'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='A59Vz'><tfoot id='A59Vz'></tfoot><dl id='A59Vz'><fieldset id='A59Vz'></fieldset></dl></div>
      <tfoot id='A59Vz'></tfoot>

      <small id='A59Vz'></small><noframes id='A59Vz'>

          <tbody id='A59Vz'></tbody>
        • <legend id='A59Vz'><style id='A59Vz'><dir id='A59Vz'><q id='A59Vz'></q></dir></style></legend>

                <bdo id='A59Vz'></bdo><ul id='A59Vz'></ul>

              • 本文介紹了如何修改另一個(gè)函數(shù)接收到的 XMLHttpRequest 響應(yīng)文本?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                問題描述

                我正在嘗試修改我無法修改的函數(shù)接收到的 responseText.此函數(shù)創(chuàng)建一個(gè)我可以附加到的 XMLHttpRequest,但我無法以一種允許我在原始函數(shù)接收到內(nèi)容之前修改內(nèi)容的方式包裝"responseText.

                I am trying to modify the responseText received by a function that I cannot modify. This function creates a XMLHttpRequest that I can attach to, but I have been unable to "wrap" the responseText in a way that allows me to modify the content before the original function receives it.

                這是完整的原始功能:

                function Mj(a, b, c, d, e) {
                    function k() {
                        4 == (m && 'readyState' in m ? m.readyState : 0) && b && ff(b) (m)
                    }
                    var m = new XMLHttpRequest;
                    'onloadend' in m ? m.addEventListener('loadend', k, !1)  : m.onreadystatechange = k;
                    c = ('GET').toUpperCase();
                    d = d || '';
                    m.open(c, a, !0);
                    m.send(d);
                    return m
                }
                function ff(a) {
                    return a && window ? function () {
                        try {
                            return a.apply(this, arguments)
                        } catch(b) {
                            throw jf(b),
                                b;
                        }
                    } : a
                }
                

                我也嘗試過操縱接收函數(shù) k();試圖達(dá)到我的目標(biāo),但由于它不依賴于傳遞給函數(shù)的任何數(shù)據(jù)(例如 k(a.responseText);)我沒有成功.

                I have also tried to manipulate the reiceiving function k(); in an attempt to reach my goal, but since it doesn't depend on any data passing to the function (for example k(a.responseText);) I had no success.

                有什么方法可以實(shí)現(xiàn)嗎?我不希望使用 js 庫(如 jQuery);

                Is there any way that I can achieve this? I do not wish to use js libraries (such as jQuery);

                編輯:我知道我無法直接更改 .responseText,因?yàn)樗侵蛔x的,但我正在嘗試找到一種方法來更改響應(yīng)和接收函數(shù)之間的內(nèi)容.

                EDIT: I understand that I cannot change .responseText directly since it is read-only, but I am trying to find a way to change the content between the response and receiving function.

                EDIT2:在我嘗試攔截和更改已從此處添加的 .responseText 的方法之一下方添加:猴子補(bǔ)丁 XMLHTTPRequest.onreadystatechange

                EDIT2: Added below one of the methods I have tried to intercept and change .responseText which has been addapted from here: Monkey patch XMLHTTPRequest.onreadystatechange

                (function (open) {
                XMLHttpRequest.prototype.open = function (method, url, async, user, pass) {
                    if(/results/.test(url)) {
                      console.log(this.onreadystatechange);
                        this.addEventListener("readystatechange", function () {
                            console.log('readystate: ' + this.readyState);
                            if(this.responseText !== '') {
                                this.responseText = this.responseText.split('&')[0];
                            }
                        }, false);
                    }
                    open.call(this, method, url, async, user, pass);
                };
                })(XMLHttpRequest.prototype.open);
                

                <小時(shí)>

                EDIT3:我忘了包括函數(shù) Mj 和 ff 不是全局可用的,它們都包含在一個(gè)匿名函數(shù)中 (function(){functions are here})();


                EDIT3: I forgot to include that the functions Mj and ff are not globally available, they are both contained inside an anonymous function (function(){functions are here})();

                EDIT4:我更改了接受的答案,因?yàn)?AmmarCSE 沒有任何與 jfriend00 的答案相關(guān)的問題和復(fù)雜性.

                EDIT4: I have changed the accepted answer because AmmarCSE's does not have any of the problems and complexity linked to jfriend00's answer.

                簡(jiǎn)而言之,最佳答案如下:

                The best answer explained in short is as follows:

                偵聽您要修改的任何請(qǐng)求(確保您的偵聽器會(huì)在原始函數(shù)目標(biāo)之前攔截它,否則在響應(yīng)已經(jīng)使用后修改它沒有意義).

                Listen to whichever request you want to modify (make sure your listener will intercept it before the original function destination does, otherwise there is no point in modifying it after the response has already been used).

                將原始響應(yīng)(如果要修改)保存在臨時(shí)變量中

                Save the original response (if you want to modify it) in a temporary variable

                將要修改的屬性更改為可寫:真",它將擦除它擁有的任何值.就我而言,我使用

                Change the property you want to modify to "writable: true", it will erase whichever value it had. In my case I use

                Object.defineProperty(event, 'responseText', {
                    writable: true
                });
                

                其中event是監(jiān)聽xhr請(qǐng)求的loadreadystatechange事件返回的對(duì)象

                Where event is the object returned by listening to the load or readystatechange event of the xhr request

                現(xiàn)在您可以為響應(yīng)設(shè)置任何您想要的內(nèi)容,如果您只想修改原始響應(yīng),那么您可以使用臨時(shí)變量中的數(shù)據(jù),然后將修改保存在響應(yīng)中.

                Now you can set anything you want for your response, if all you wanted was to modify the original response then you can use that data from your temporary variable and then save the modifications in the response.

                推薦答案

                一個(gè)非常簡(jiǎn)單的解決方法是更改?? responseText 本身的屬性描述符

                One very simple workaround is to change the property descriptor for responseText itself

                Object.defineProperty(wrapped, 'responseText', {
                     writable: true
                });
                

                所以,你可以像

                (function(proxied) {
                    XMLHttpRequest = function() {
                        //cannot use apply directly since we want a 'new' version
                        var wrapped = new(Function.prototype.bind.apply(proxied, arguments));
                
                        Object.defineProperty(wrapped, 'responseText', {
                            writable: true
                        });
                
                        return wrapped;
                    };
                })(XMLHttpRequest);
                

                演示

                這篇關(guān)于如何修改另一個(gè)函數(shù)接收到的 XMLHttpRequest 響應(yīng)文本?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                相關(guān)文檔推薦

                Browser waits for ajax call to complete even after abort has been called (jQuery)(即使在調(diào)用 abort (jQuery) 之后,瀏覽器也會(huì)等待 ajax 調(diào)用完成)
                JavaScript innerHTML is not working for IE?(JavaScript innerHTML 不適用于 IE?)
                XMLHttpRequest cannot load, No #39;Access-Control-Allow-Origin#39; header is present on the requested resource(XMLHttpRequest 無法加載,請(qǐng)求的資源上不存在“Access-Control-Allow-Origin標(biāo)頭) - IT屋-程序員軟件開發(fā)技術(shù)分
                Is it possible for XHR HEAD requests to not follow redirects (301 302)(XHR HEAD 請(qǐng)求是否有可能不遵循重定向 (301 302))
                NETWORK_ERROR: XMLHttpRequest Exception 101(NETWORK_ERROR:XMLHttpRequest 異常 101)
                XMLHttpRequest 206 Partial Content(XMLHttpRequest 206 部分內(nèi)容)
                      <tbody id='gZkno'></tbody>

                      <bdo id='gZkno'></bdo><ul id='gZkno'></ul>
                      <i id='gZkno'><tr id='gZkno'><dt id='gZkno'><q id='gZkno'><span id='gZkno'><b id='gZkno'><form id='gZkno'><ins id='gZkno'></ins><ul id='gZkno'></ul><sub id='gZkno'></sub></form><legend id='gZkno'></legend><bdo id='gZkno'><pre id='gZkno'><center id='gZkno'></center></pre></bdo></b><th id='gZkno'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='gZkno'><tfoot id='gZkno'></tfoot><dl id='gZkno'><fieldset id='gZkno'></fieldset></dl></div>
                    • <small id='gZkno'></small><noframes id='gZkno'>

                      <tfoot id='gZkno'></tfoot>

                      1. <legend id='gZkno'><style id='gZkno'><dir id='gZkno'><q id='gZkno'></q></dir></style></legend>
                        • 主站蜘蛛池模板: 在线观看亚洲一区二区 | 自拍第1页 | 国产高清在线观看 | 日韩一区二区在线播放 | 在线观看日韩精品视频 | 精品永久 | 亚洲欧美国产精品一区二区 | 精品一区二区三区中文字幕 | 亚洲毛片在线 | 精品成人免费视频 | 在线观看你懂的网站 | 亚洲综合色视频在线观看 | av免费看片 | 国产精品一区二区三区在线 | 97精品国产一区二区三区 | 亚洲精品视频在线播放 | www.免费看片.com | 99久久免费精品国产男女高不卡 | 99免费在线观看视频 | 天天干天天玩天天操 | 久久久国产精品 | 日本午夜免费福利视频 | 欧美精品在线一区二区三区 | 天天插天天操 | 欧美一区二区三区在线 | 黑人巨大精品 | 麻豆久久久久久久久久 | 国产精品完整版 | 欧美一区二区在线观看 | aaa综合国产 | 一级二级三级在线观看 | 国外成人在线视频网站 | 日本欧美在线 | 宅女噜噜66国产精品观看免费 | 国产精品99久久久久久久久久久久 | 欧美一区二区视频 | 婷婷在线免费 | 欧美日韩专区 | 黄色网址免费在线观看 | 在线一区 | 国产精品毛片一区二区三区 |