我一直在寻找一种方法来改变我的浏览器中的XHR请求,然后再次重播.假设我在浏览器中完成了一个完整的POST请求,我唯一想要更改的是一个小值,然后再次播放.直接在浏览器中执行此操作会更容易,更快捷.
我已经谷歌了一下,并没有找到办法在Chrome或Firefox中做到这一点.有没有办法在这些浏览器中的任何一个或其他浏览器中执行此操作?
我正在处理的应用程序有一个会话超时值.如果用户之间的交互时间不超过此值,则会尝试加载下一页,然后系统会提示他们登录.
所有发出的请求都通过这种机制进行路由,其中包括AJAX调用.最初我们在登录页面上发送了200个头文件,这引入了AJAX的一些问题,因为如果发送了200个响应,则运行代码,并且从这些RPC调用发回的大多数数据是JSON或得到评估的原始JavaScript(不问:|).
我建议401更好,因为我们的JSON解析器不会尝试使用HTML登录页面.. :)
但是,在阅读规范时,我注意到该WWW-Authenticate字段也必须发送.
这个领域有什么好处?会Application Login满足吗?
有没有办法使用post方法发送数据而没有表单,没有刷新页面只使用纯Javascript(不是jQuery $.post())?也许是httprequest或其他东西,现在找不到它.
是否可以阻止浏览器在发送XMLHttpRequest-s时遵循重定向(即重新获取重定向状态代码并自行处理)?
我想知道是否可以"挂钩"每个AJAX请求(无论是要发送还是事件)并执行操作.此时我假设页面上还有其他第三方脚本.其中一些可能使用jQuery,而另一些则不然.这可能吗?
无法使用XMLHttpRequest获取数据(状态0和responseText为空):
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://www.w3schools.com/XML/cd_catalog.xml", true);
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
alert("status " + xmlhttp.status);
}
xmlhttp.send();
它警告"状态0".
与localhost请求相同的情况(cd_catalog.xml保存为本地文件)
xmlhttp.open("GET","http://localhost/cd_catalog.xml", true);
但是使用localhost IP请求
xmlhttp.open("GET","http://127.0.0.1/cd_catalog.xml", true);
并使用本地文件请求
xmlhttp.open("GET","cd_catalog.xml", true);
一切都好(状态200)
什么可以导致问题(状态= 0)与在线请求?
PS:Live HTTP Headers显示在所有4种情况下一切正常:
HTTP/1.1 200 OK Content-Length: 4742
PS2:VMWare上的Apache本地Web服务器(主机OS Win7,Guest OS Ubuntu,网络适配器 - NAT).浏览器 - Firefox.
伪代码:
$(document).ajaxError(function(e, xhr, options, error) {
xhr.retry()
})
Run Code Online (Sandbox Code Playgroud)
更好的是某种指数回退
我需要将JSON(我可以将其字符串化)发送到服务器并在用户端检索生成的JSON,而不使用JQuery.
如果我应该使用GET,我如何将JSON作为参数传递?是否存在太长的风险?
如果我应该使用POST,如何onload在GET中设置函数的等价物?
或者我应该使用不同的方法?
备注
这个问题不是关于发送一个简单的AJAX.它不应该作为重复关闭.
在普通的javascript中非常简单:只需将回调附加到 {XMLHTTPRequest}.onprogress
var xhr = new XMLHttpRequest();
xhr.onprogress = function(e){
if (e.lengthComputable)
var percent = (e.loaded / e.total) * 100;
};
xhr.open('GET', 'http://www...', true);
xhr.onreadystatechange = function() {
...
};
xhr.send(null);
Run Code Online (Sandbox Code Playgroud)
但我正在做一个用JQuery($.get()或$.ajax())下载html数据的ajax网站,我想知道哪个是获取请求进度的最佳方式,以便用一点进度条显示它,但奇怪的是,我不是在JQuery文档中找到任何有用的东西......
看来,当您从浏览器中的脚本创建XMLHttpRequest时,如果浏览器设置为脱机工作或者拔出网络电缆,请求将以错误完成并且状态为0. 0未列为允许HTTP状态代码.
状态代码0是什么意思?所有浏览器和所有HTTP客户端实用程序的含义是否相同?它是HTTP规范的一部分还是其他协议规范的一部分?这似乎意味着根本无法进行HTTP请求,可能是因为服务器地址无法解析.
显示用户的错误消息是什么?"要么您没有连接到互联网,要么网站遇到问题,或者地址中可能存在输入错误"?
我应该补充一点,当我设置为"脱机工作"时,我会看到FireFox中的行为,但是当设置为"脱机工作"时,我看不到Microsoft Internet Explorer中的行为.在IE中,用户获得一个对话框,提供上线选项.FireFox在返回错误之前不会通知用户.
我问这是为了回应"显示更好的错误消息"的请求.Internet Explorer的功能很好.它告诉用户导致问题的原因并为他们提供修复问题的选项.为了给FireFox提供一个等效的UX,我需要推断出问题的原因并通知用户.那么总共可以从状态0推断出什么呢?它有普遍意义还是什么都没告诉我?
xmlhttprequest ×10
javascript ×7
ajax ×6
browser ×2
jquery ×2
post ×2
firefox ×1
get ×1
http ×1
http-headers ×1
http-post ×1
json ×1