XHR && HTTP 403 status code && Opera
function DoIt()
{
var
req,
Ctrl,
cb;
if(!(req=initXMLHTTPRequest())
|| !(Ctrl=document.getElementById("DivResponse"))
|| !(cb=document.getElementById("cb403")))
return;
req.onreadystatechange=function()
{
if(req.readyState==4)
{
==> if(req.status==200)
Ctrl.innerHTML=req.responseText;
else
alert("status="+req.status+"\r\nstatusText=\""+req.statusText+"\"");
req=null;
}
};
req.open("POST","PageWithXHRHandler.aspx",true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.setRequestHeader("X-Requested-With","XMLHttpRequest");
req.send(cb.checked ? "is403="+encodeURIComponent(cb.checked.toString()) : null);
}
function initXMLHTTPRequest()
{
var
xRequest=null;
if(window.XMLHttpRequest)
xRequest=new XMLHttpRequest();
else if(window.ActiveXObject)
{
try
{
xRequest=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert(e.name+": "+e.message);
}
}
}
return(xRequest);
}
У всех все нормально, а у этой Opera XHR.status==0. Хотя сервер возвращает 403 и в ее Opera Dragonfly -> Network тоже показывают 403. Почему? Что нужно подкрутить, чтобы получить нормальные человеческие 403? |
Гм... Стоит хоть что-то записать в response:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if ((Context.User == null || !Context.User.Identity.IsAuthenticated)
&& Context.Request.Headers["X-Requested-With"] != null
&& Context.Request.Headers["X-Requested-With"].Trim().ToLower() == "xmlhttprequest"
&& Context.Request.Form["is403"] != null
&& Context.Request.Form["is403"].Trim().ToLower() == "true")
{
Context.Response.StatusCode = 403;
==> Context.Response.Write("blah-blah-blah");
Context.Response.End();
}
}
и XHR.status==403. Баг Opera? |
Цитата:
|
Цитата:
|
ну я к тому, что в 9.27, например, она ведет себя более ожидаемо
Цитата:
|
Цитата:
Ну, а по поводу самой Opera, как таковой, я даже калории тратить не хочу... |
я ж всего лишь поинтересовался, как оно было в предыдущих версиях. Понятное дело, что у меня 11-ая опера установлена :) А калории тратить не надо: лучше пусть каждый из нас останется в заблуждении, что оппонент - отщепенец-мазохист-извращенец ;)
|
Цитата:
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 23:08. |