标签: xmlhttprequest

Facebook聊天如何避免连续轮询服务器?

我试图了解Facebook的聊天功能如何在不连续策略服务器的情况下接收消息.

Firebug向我展示了一个持续坐在那里的GET XmlHttpRequest,等待来自服务器的响应.5分钟后,这从未超时.

它们如何防止超时?

一个AJAX请求可以无限期地坐在那里等待响应?

我可以用JSONRequest做到这一点吗?我在json.org看到了这个:

JSONRequest旨在支持双工连接.这允许服务器可以异步启动传输的应用程序.这是通过使用两个同时请求来完成的:一个发送,另一个接收.通过使用timeout参数,POST请求可以保持挂起状态,直到服务器确定它有及时发送数据.

或者除了使用JSONRequest之外,还有其他方法让AJAX调用只是坐在那里等待吗?

ajax json xmlhttprequest

17
推荐指数
1
解决办法
7774
查看次数

responseXML始终为null

我使用firefox 3.6.10和firebug进行调试

所以,这是我的代码:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url,false);
xmlhttp.setRequestHeader('Content-Type',  'text/xml');
xmlhttp.send(null);
alert(xmlhttp.responseXML);
Run Code Online (Sandbox Code Playgroud)

responseXML总是为null,我已经尝试过来自不同域的几个URL.我也异步尝试过,结果相同.该responseText的总是正确返回,与它没有任何问题.

我的目标是获取responseXML.documentElement.

谢谢你的帮助.

编辑-----------
这个javascript代码是从Greasemonkey用户脚本执行的,我使其与所请求的URL具有相同的来源.此外,我尝试从firebug控制台执行,再次确保原始政策.两者都有相同的错误.
得讨厌javascript.

javascript ajax xmlhttprequest

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

捕获javascript XMLHttpRequest的重定向位置

我知道在使用XMLHttpRequest时,你不能拦截重定向或阻止重定向,因为浏览器会透明地跟随它,但它是否可能

A.确定重定向的请求,或

B.确定在那里它重定向到?(假设响应没有给出提示)

示例代码:

$.post("/my-url-that-redirects/", {}, 
    function(response, statusCode, xmlHttpRequest){
        //Somehow grab the location it redirected to
    }
);
Run Code Online (Sandbox Code Playgroud)

在我的情况下,firebug将首先显示对URL的POST,然后对重定向的URL进行GET.可以捕获GET位置吗?

javascript jquery xmlhttprequest

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

WebSockets的.丢失互联网,保持活跃的消息,应用程序架构等

嗯,这里有关于websockets的信息.技术本身是惊人的,这一点毫无疑问.在我开始在我的应用程序中使用它们之前,我只想让社区回答以下问题:

"...为了保持存在,应用程序可以在WebSocket上发送保持活动的消息,以防止它因空闲超时而被关闭......"

"...理想情况下,WebSocket的未来版本将支持超时发现,因此它可以告诉应用程序保持活动消息的时间......"

  1. 感觉就像似曾相识.之前我们不得不一次轮询服务器%period_time%以获取所需的更新信息.对于websockets,我们必须使用keep-alive消息在%period_time%上轮询websocket服务器,以确保Internet连接仍处于活动状态/ websocket服务器仍在工作.有什么好处?

    关于这些保持活跃的消息还有另外一件事.Websocket协议的优点是使用比HTTP(S)更少的流量.如果我们发送保持活跃的消息,似乎流量优势消失了.或者可能不是?

  2. 如果我使用websockets,我应该如何处理我的应用程序中的互联网丢失?我的意思是当互联网连接突然丢失时的真实情况(我的意思是没有发生"navigator.offline"事件).我应该使用某种setTimeout函数来查找保持活动消息,还是有更好的方法来处理这种情况?

  3. REST让我们清楚地了解应用程序应该如何工作以及请求应该如何.在websocket驱动的应用程序中执行此操作的最佳方法是什么?我应该用request.action字段(例如)JSON编码的消息吗?应用程序应该如何执行PUT请求?REST模型中有URL资源来处理这个问题,所以我应该使用这些方法的组合,还是可以简化?

javascript html5 xmlhttprequest long-polling websocket

17
推荐指数
2
解决办法
1万
查看次数

浏览器的AJAX(XmlHttpRequest)超时长度

我一直在网上试图找到一个直接的答案.有没有人知道浏览器的ajax请求的默认超时长度?如果它改变了版本?

ajax xmlhttprequest

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

Internet Explorer(仅限)间歇性地中止AJAX帖子

一个多星期拉出我的头发.

使用:

Jquery 1.9.1

使用类似于JSON示例的malsup表单插件:http://malsup.com/jquery/form/#json

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" /> with of without same error

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

Internet Explorer(8/9/10)将随机中止AJAX POST请求(非常随机)

通过Abort,我的意思是,NOTHING通过http"发送" - 它只是中止然后让眼泪流泪.

网络下的F12开发人员工具读取:

URL 我的网址是正确的

结果(已中止)字面读取(已中止)

输入空白 - 这里没什么

收到0B

拍摄202ms

启动器(待定)它从字面上读取(待定)

开始捕获请求:

请求标头为空

请求体是空的

eveything是空的

但是在Timings选项卡下,我注意到它按顺序开始等待启动开始Gap DOMContentLoaded(事件)加载(事件)

应该 开始两次?或者我以某种方式提交请求两次,这是导致中止.

我会说,成功的POSTS 在时间选项卡下有两次启动.

我也是console.log错误并得到:

xmlhttprequest.ReadyState 4

xmlhttprequest.Status:12019

这当我点击提交第二次它的工作原理.顾客不会喜欢这个......

$('#formId').ajaxForm( {
    dataType :  'json',
    cache:      false,
    beforeSend: beforeGenericPostForm,
    success :   FormResponse,
    error:      genericError
});

$('#formSubmitId').click(function(e){
    e.preventDefault();

    //perform some …
Run Code Online (Sandbox Code Playgroud)

ajax jquery internet-explorer xmlhttprequest abort

17
推荐指数
1
解决办法
7376
查看次数

phantomjs - 没有为任何XHR/POST/GET AJAX请求发送Cookie

尝试使用PhantomJS登录时,我发现了一个有趣的问题.我不知道为什么它真的发生了.

基本上你启动一个远程调试器,如下所示:

/usr/local/bin/phantomjs --web-security=no --remote-debugger-port=13379 --remote-debugger-autorun=yes /tmp/test.js 
Run Code Online (Sandbox Code Playgroud)

在远程调试器中:

> location.href = "https://www.mysite.com/login"
> $('input[name="username_or_email"]').val('blah@email.com')
> $('input[name="password"]').val('wrongpassword')

> $('button[type="submit"]').submit()
Run Code Online (Sandbox Code Playgroud)

在Chrome中执行此操作会在XHR请求后给我正确的"错误密码"消息,而使用phantomjs会给我一个通用错误,因为没有使用phantomjs发送cookie(我检查了标题).

我很困惑为什么phantomjs不发送带有POST请求的cookie.有谁知道我们怎么能让phantomjs发送带有所有请求的cookie呢?设置cookie文件也没有任何区别.

cookies xmlhttprequest phantomjs

17
推荐指数
1
解决办法
1743
查看次数

如何修改另一个函数接收的XMLHttpRequest响应文本?

我试图修改由我无法修改的函数收到的responseText.这个函数创建了一个我可以附加的XMLHttpRequest,但是我无法以允许我在原始函数接收内容之前修改内容的方式"包装"responseText.

这是完整的原始功能:

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 …
Run Code Online (Sandbox Code Playgroud)

javascript ajax monkeypatching xmlhttprequest

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

Chrome和其他浏览器是否会放弃对Synchronous XMLHttpRequest的支持?

同步XMLHttpRequest已被弃用,这意味着最终将删除对它的支持,这是我在Chrome中收到的消息:

主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请访问http://xhr.spec.whatwg.org/.

所以,我的问题是,如果是,如果是的话,主流浏览器(特别是Chrome)何时会放弃对同步XMLHttpRequest的支持?

browser google-chrome xmlhttprequest synchronous deprecated

17
推荐指数
1
解决办法
5010
查看次数

当前的XHR实现是否利用HTTP/2?

这可能只是突出了我的一些误解,但我很好奇:

如果您运行的HTTP/2服务器并且希望在浏览器中向服务器发出XHR请求,那么XHR会自动利用标头中的性能优化并提供它吗?

或者它会忽略该功能并作为HTTP请求运行?如果是这样,我们可以做些什么来在我们的请求中使用新的优化吗?

javascript xmlhttprequest http2

17
推荐指数
1
解决办法
6221
查看次数