ich einen ganz einfachen Laravel Controller habe:Laravel kann nicht return true json Antwort
class MyController extends Controller
{
public function list()
{
return response()->json(['a' => 'hello']);
}
}
Wenn ich versuche, eine entsprechende URL in Browser zu öffnen (ich benutze Google Chrome) es funktioniert gut. Es gibt {"a":"hello"}
Antwort und Inhaltstyp ist application/json
.
Aber wenn ich Daten über Javascript (ich benutze fetch polyfill) ich sehe, dass Inhaltstyp ist text/html
. Ich habe es in Googlechrome DevTools und in meinen Code:
fetch("/list")
.then(function(response) {
console.log(response.headers.get('Content-Type')); // => 'text/html'
return response.json();
})
.then(function(json) {
})
.catch(function(error){
});
Nun, ich den Fehler haben - Unexpected token < in JSON at position 0
.
Ich verstehe völlig nicht, was passiert ist.
PS:
Laravel Version - 5.4, PHP Version 7.0.15, 3.2.2 XAMPP
polyfill Version Fetch - 2.0.3
Google Chrome-Version - 57.0.2987.133
Und ja, es klingt seltsam, aber in MS Edge V.20.10240 funktioniert es gut.
Haben Sie sich die Dev-Tools angesehen, um zu sehen, worauf die Anfrage reagiert? Es ist möglich, dass der Server HTML mit den Daten –
"Ich habe es in GoogleChrome DevTools überprüft" zurückgibt - Inhaltstyp ist 'text/html'. Also, die Frage ist warum? Es sollte "Anwendung/Json" sein. – Sergey
versuchen, die Antwort zu überprüfen, wenn es verfügbar ist (gleiche Sache, die Sie zuvor getan haben, aber es sollte eine Antwort Registerkarte neben der Kopfzeile sein), wenn ich diesen Fehler sehe, neigt es aus dem Server zu reagieren mit HTML aus irgendeinem Grund –