andrisp Posted May 2, 2007 Report Share Posted May 2, 2007 (edited) Tātad ir problēma: reizēm (diezgan regulāri) skripts nomirst ar kļūdu "The download of the specified resource has failed" (nevis ar XHR statusu, bet gan kā skripta kļūda). Notiek tas tikai uz IE6 (uz citām versijām nemēģināju). Izmēģināju arī uz dažādiem kompjiem, tā kā tas nav tikai mans gļukainais IE. Iekš FF viss ok. Skripta būtība: Nosubmitējot formu, tiek izveidots xhr objekts, kas mēģina pieprasīt ar POST (ar GET problēmu nav) metodi failu. Parasti viss notiek ok, bet reizēm skripts nomirst pie xhr objekta metodes send. Ā un jā, lapa tiek ieladēta caur SSL. Sākumā xhr pieprasījumus veidoju ar relatīvu URL. Tipa nepieprasīju https://www.example.com/skripts.php, bet gan vienkārši skripts.php. Tad gļukoja daudz biežāk. Pārveidoju uz absolute URL un it kā nedaudz mazāk tagad gļuko, bet vienalga gļuko. http://paste.php.lv/5502 Tātad: vai kāds ir ar kaut ko tādu saskāries ? Kādi risinājumi ? Var būt kādi padomi attiecībā uz pašu skriptu, kas iespējams novērstu kļūdu ? Edited May 2, 2007 by andrisp Link to comment Share on other sites More sharing options...
v3rb0 Posted May 2, 2007 Report Share Posted May 2, 2007 varbūt kaut kāda saistība ar datiem kurus sūti? Link to comment Share on other sites More sharing options...
andrisp Posted May 2, 2007 Author Report Share Posted May 2, 2007 (edited) Diezvai. Nosūtīti tiek vienkārši POST dati - divi pavisam nelieli mainīgie. Atgriezts arī tiek pavisam vienkārš json, apt šāds: {"status":"1"}. Bet vispār kļūda notiek pie XHR send metodes izsaukšanas. Debugojot HTTP trafiku noskaidroju, ka reaals HTTP pieprasījums pat nepaspēj notikt. Aizmirsu arī pateikt, ka reizēm IE pat sasalt uz kādu pusminūti PĒC tam, kad nospiežu Ok tam kļūdas paziņojumam. Edited May 2, 2007 by andrisp Link to comment Share on other sites More sharing options...
marrtins Posted May 2, 2007 Report Share Posted May 2, 2007 pamēģini vispirms xhrObj = new ActiveXObject("Microsoft.XMLHTTP"); t.i. apmainīt vietām ar xhrObj = new ActiveXObject("Msxml2.XMLHTTP"); Link to comment Share on other sites More sharing options...
andrisp Posted May 2, 2007 Author Report Share Posted May 2, 2007 Nepalīdz. Link to comment Share on other sites More sharing options...
black Posted May 2, 2007 Report Share Posted May 2, 2007 (edited) Varbūt IE nepatīk, ka Tu mēģini nolasīt rezultātu ("alert(xhrObj.responseText);") vēl pirms tas tiek atgriezts? Tieši tur jau tas asinhronums (no Ajax) arī izpaužas - rezultāts var atnākt arī vēlāk. Pirms "xhrObj.send" ieliec kaut ko apmēram šādu: var me = this; xhrObj.onreadystatechange = function() { if(me.xhrObj.readyState == 4) { if(me.xhrObj.responseText) { alert(xhrObj.responseText); } } }; Edited May 2, 2007 by black Link to comment Share on other sites More sharing options...
andrisp Posted May 2, 2007 Author Report Share Posted May 2, 2007 Es jau netaisu asinhronus pieprasījumus. Link to comment Share on other sites More sharing options...
black Posted May 2, 2007 Report Share Posted May 2, 2007 Oops, pie "xhrObj.open" Tev tiešām ir false. Link to comment Share on other sites More sharing options...
bubu Posted May 2, 2007 Report Share Posted May 2, 2007 A kā ir tad, ja taisa ashinhroni? Link to comment Share on other sites More sharing options...
andrisp Posted May 2, 2007 Author Report Share Posted May 2, 2007 Arī gļuko. Kļūdas gadijumā xhr.status ir 12030 "ERROR_INTERNET_CONNECTION_ABORTED The connection with the server has been terminated." Kļūdas atšifrējums no http://support.microsoft.com/kb/193625 Link to comment Share on other sites More sharing options...
bubu Posted May 2, 2007 Report Share Posted May 2, 2007 Nav varbūt tā, ka Content-Length no php puses tiek padots neatbilstoši īstajam nosūtītajam saturam? Katrā ziņā man nekad nav nācies ko šādu redzēt. Link to comment Share on other sites More sharing options...
andrisp Posted May 2, 2007 Author Report Share Posted May 2, 2007 Tā. Sataisīju visu atpakaļ uz sinhrono un skatos, ka tagad, kad nogļuko, tad xhr.status satur 12152 jeb "ERROR_HTTP_INVALID_SERVER_RESPONSE The server response could not be parsed" un xhr.getAllResponseHeaders() ir tukšs. Link to comment Share on other sites More sharing options...
andrisp Posted May 2, 2007 Author Report Share Posted May 2, 2007 (edited) Katrā ziņā - nākamais solis ir testēt (lasi-atjaunot vai nomainīt pret apache) lighthttp installāciju. Pašā sākumā bija Apache un tad šādi gļuki netika novēroti (vismaz tā ar admin sākām domāt, bet diez lighthttp ir pie vainas). PS. Content-Length no php puses nemaz nav. Edited May 2, 2007 by andrisp Link to comment Share on other sites More sharing options...
bubu Posted May 2, 2007 Report Share Posted May 2, 2007 Pamēģini padot content-length'u. Un content-type arī. Link to comment Share on other sites More sharing options...
marrtins Posted May 2, 2007 Report Share Posted May 2, 2007 apache.log`os nekas neparādās? paprovē ar kādu snifferi paķer paketes un apstīties, ko jams sūta un saņem Link to comment Share on other sites More sharing options...
Recommended Posts