Jump to content
php.lv forumi

xmlhttprequest, SSL un IE6


andrisp

Recommended Posts

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 by andrisp
Link to comment
Share on other sites

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 by andrisp
Link to comment
Share on other sites

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 by black
Link to comment
Share on other sites

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

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 by andrisp
Link to comment
Share on other sites

×
×
  • Create New...