Ich bin heute innerhalb von phantomjs auf einen sehr merkwürdigen Fehler gestoßen, an den ich mich für die Community gewandt habe. Die erwartete JSON-Antwort einer API, die ich mit phantomJS aufgerufen hatte, wurde nicht zurückgegeben, sondern das Ergebnis war ein Fehlerstatus.PhantomJS gibt den Status failed zurück, wenn die geladene Seite einen ungültigen Antworttyp vom Inhaltstyp hat
onResourceReceived() zeigte einen 200 HTTP-Statuscode für die betreffende Ressource onLoadFinished() zeigt einen Status von
scheiternNach dem Debuggen dies für einige Zeit, bemerkte ich, dass die Website wurde ein Nicht-Standard-Content-Type-Rückkehr Header auf die Antwort. Statt des Inhaltstyps von "application/json" war der zurückgegebene Header "application/servicename-1.0 + json".
Um dies zu überprüfen, haben wir einen lokalen Webserver hochgefahren, der einen ähnlichen Header lieferte, und natürlich kann phantom js die Seite nicht laden. Wenn Sie den Antwortheader auf "application/json" und phantomjs setzen, wird die Seite korrekt gerendert und die page.plainText-Variable der Seitenobjekte festgelegt. Ich habe das Testskript unten eingefügt.
Hat jemand schon einmal so etwas erlebt?
Haben Sie Vorschläge, wie Sie dieses Problem innerhalb von phantomjs lösen können?
Interessante Idee, nicht mit der phantomJS-Quelle super vertraut Ich bin offen für Änderungen. Irgendwelche Ideen auf dieser Front? – Jesse