Frage

Ich versuche, einige Seltsamkeit mit meinem AJAX Anruf los zu verengen. Mein PHP-Skripte hat dies am Anfang:

ob_start("ob_gzhandler");

Funktioniert hervorragend mit HTML. Aber gibt es irgendwelche Probleme mit ihm mit application / json Daten tun? Jeder Browser Probleme jemand kennt?

War es hilfreich?

Lösung

Das glaube ich nicht so ... Ich habe vor als gzip-JSON gespeichert statische Dateien verwendet, und es funktionierte gut mit AJAX.

Bearbeiten ich meine PHP-Skript überprüft und das einzige, was spezielle ich tat, war, diese Header enthalten:

Content-Encoding: gzip
Content-Type: text/plain

Wenn ich mich recht erinnere, wenn ich versuchte, den Content-Type, um etwas zu ändern, die JSON anzeigen würde, der Kunde hatte Probleme.

Andere Tipps

Einige ältere Browser, wie bestimmte Versionen von IE6, vermasseln gzipped Inhalte, insbesondere js Inhalt.

Just überprüfen, dass der Server der richtigen Content-Encoding-Header sendet, dh

Content-Encoding: gzip

Sie sollten auch die Header vom Browser für gesendete überprüfen richtige Accept-Encoding-Header vor gzipped Inhalt Senden ... das heißt,

Accept-Encoding: gzip,deflate

Sie können gzipped Inhalt geben, wenn der Browser gzip in Accept-Encoding Request-Header angibt. In diesem Fall gibt es keinen Unterschied zwischen JSON und HTML und ohne Probleme auch immer verursacht werden.

Stattdessen Kompression in PHP zu ermöglichen, würde ich Kompression in Apache (mit mod_deflate) aktiviert, so dass Sie für verschiedenen inkompatible Browser überprüfen und nur komprimierte Daten für den Browser senden, die es akzeptieren und verarbeiten es richtig.

http://httpd.apache.org/docs/2.0/mod /mod_deflate.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top