相关疑难解决方法(0)

UIWebViewDelegate不监控XMLHttpRequest?

是否真的UIWebViewDelegate不监视使用XMLHttpRequest发出的请求?如果是这样,有没有办法监控这类请求?

例如,UIWebViewDelegate没有捕获到它-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSMutableURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.google.com", true);

xhr.onreadystatechange=function() 
{
    if (xhr.readyState==4) 
    {
        alert(xhr.responseText);
    }
}

xhr.send();
Run Code Online (Sandbox Code Playgroud)

ajax xcode xmlhttprequest uiwebview

53
推荐指数
2
解决办法
3万
查看次数

JavaScript:检测AJAX请求

有没有办法在使用通用JavaScript(而不是框架)的网页上检测全局AJAX调用(特别是响应)?

我已经在StackOverflow上查看了" JavaScript检测AJAX事件 " 的问题,并尝试将接受的答案代码修补到我的应用程序中,但它没有用.我之前从未对AJAX做过任何事情,我不知道修改它是否有效.

我不需要任何花哨的东西,我只需要检测所有(具体的,实际上,但我必须首先检测所有并从那里开始)AJAX响应并将它们修补到IF语句中以供使用.所以,最终,我想要像:

if (ajax.response == "certainResponseType"){
    //Code
}
Run Code Online (Sandbox Code Playgroud)

, 例如.

更新: 似乎我应该澄清我不是在尝试发送请求 - 我正在开发一个内容脚本,我需要能够检测到网页的AJAX请求(不是我自己的),所以我可以执行一个检测到响应时起作用.

javascript ajax call request

31
推荐指数
4
解决办法
4万
查看次数

如何使用jQuery检测"任何"ajax请求?

我有一个页面,我可以插入一些javascript/jquery来操作输出.我对页面标记等没有任何其他控制权.

我需要在页面上的每个元素之后通过jquery添加一个额外的元素.问题是元素是通过现有页面上的异步调用生成的,该调用发生在$(document).ready完成之后.

本质上,我需要一种方法在页面加载后调用我的jquery并完成后续的ajax调用.有没有办法检测页面上任何ajax调用的完成情况,然后调用我自己的自定义函数在新创建的s之后插入其他元素?

ajax jquery load detect

14
推荐指数
1
解决办法
5万
查看次数

JavaScript或ServiceWorkers可以检测网络活动/ Ajax事件吗?

有没有办法ServiceWorker(或其他机制)检测何时下载资源?

例如,如果发生以下任何情况,我希望收到通知:

  • <img src> 下载
  • background-image: url(...)下载中的资源
  • 样式表遇到了@import并且正在获取资源
  • <script src> 下载
  • 一些脚本调用一个新的XMLHTTPRequestfetch

短的黑客开放的XMLHttpRequest.prototype方法,它的JavaScript提供了一种方法来听网络活动?

这与关于空闲网络活动的问题相反

javascript ajax httprequest

10
推荐指数
1
解决办法
1536
查看次数

猴子补丁XMLHTTPRequest.onreadystatechange

如何修补猴子XMLHTTPRequestonreadystatechange功能.我正在尝试添加一个函数,当从页面发出的每个ajax请求返回时,将调用该函数.

我知道这听起来像一个可怕的想法,但用例非常奇特.我想在控制台(jqconsole)中使用某个SDK,但在控制台内显示ajax调用的状态和结果,而不修改外部SDK.

我看过这篇文章有很多信息,但猴子修补回调似乎超出了我的JavaScript技能.

PS不能使用jQuery,因为它只支持从jQuery调用的jjj调用,而不是XMLHTTPRequests直接来自这里的情况.

javascript ajax monkeypatching xmlhttprequest

7
推荐指数
1
解决办法
3237
查看次数

未调用onreadystatechange的XMLHttpRequest原型

我正试图检测我的UIWebView中何时完成任何ajax调用.我在这个答案中修改了代码:JavaScript尽我最大的能力检测AJAX事件.这是我的尝试:

var s_ajaxListener = new Object();
s_ajaxListener.tempOnReadyStateChange = XMLHttpRequest.prototype.onreadystatechange;
s_ajaxListener.callback = function () {
    window.location='ajaxHandler://' + this.url;
};

XMLHttpRequest.prototype.onreadystatechange = function() {
    alert("onreadystatechange called");
    s_ajaxListener.tempOnReadyStateChange.apply(this, arguments);
    if(s_ajaxListener.readyState == 4 && s_ajaxListener.status == 200) {
        s_ajaxListener.callback();
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在将其注入webView,但警报从未触发.如果我在脚本的开头或结尾放置一个警报,它会触发,所以我很确定没有语法错误.

我不是一个JS人,所以我希望这是一个微不足道的问题.

javascript ajax uiwebview

7
推荐指数
1
解决办法
2368
查看次数

确定何时在没有回调的情况下发出XMLHttpRequest请求

我正在尝试在JavaScript中重载XMLHttpRequest.*方法,以便网页可以确定是否发生了Ajax请求而没有使用任何侵入式回调.现在,使用大多数JS框架时,这样的工作相对较好:

XMLHttpRequest.prototype.getResponseHeader = function() {
 alert('O hai, looks like you made an AJAX request.');
}
Run Code Online (Sandbox Code Playgroud)

但是,有两个捕获:

  • getResponseHeader不能再用作getResponseHeader.
  • 它在简单的AJAX示例中不起作用.即xmlhttp.open("GET","simple.html",false);

有没有什么方法JS可以镜像XMLHttpRequest.open()或任何方式,我可以链接到它.我已经尝试了一百万个范例(工厂,克隆,包装 - 最多导致无限递归),似乎没有任何工作.也许这是不可能的.有任何想法吗?

javascript ajax jquery callback

6
推荐指数
1
解决办法
2373
查看次数

重新创建jQuery的ajaxStart和ajaxComplete功能

我试图在没有jQuery的情况下重现jQuery的函数ajaxCompleteajaxStart,这样它们就可以在没有库依赖的任何环境中使用(这是一个特殊的用例).这些函数允许在任何ajax请求之前和之后调用事件侦听器.在我的示例中,我将它们称为preAjaxListener和postAjaxListener.

我试图挂接到XMLHttpRequest对象和覆盖/装潢完成它opensend.是的,我知道这很脏.

XMLHttpRequest.prototype.open = (function(orig){
    return function(a,b,c){
        this._HREF = b; // store target url
        return orig.apply(this, arguments); // call original 'open' function
    };
})(XMLHttpRequest.prototype.open);

XMLHttpRequest.prototype.send = (function(orig){
    return function(){
        var xhr = this;
        _core._fireAjaxEvents('pre', xhr._HREF); // preAjaxListener fires

        var rsc = xhr.onreadystatechange || function(){}; // store the original onreadystatechange if it exists
        xhr.onreadystatechange = function(){ // overwrite with custom function
            try {
                if (xhr.readyState == 4){
                    _core._fireAjaxEvents('post', xhr._HREF); // postAjaxListneer should fire …
Run Code Online (Sandbox Code Playgroud)

javascript ajax hook xmlhttprequest

4
推荐指数
1
解决办法
2760
查看次数