Fetch: json-Daten posten, Anwendung / json in text / plain ändern

8

Ich verwende Chrome 53.0.2785.116 m (64-Bit).

Ich habe die folgenden Header auf Devtools. Das Problem ist mit einem "//" Kommentar markiert. content type erlaubt uns wirklich nicht, es auf application / json zu setzen, ich habe 100 verschiedene Wege ausprobiert.

%Vor%

Anfrage Kopfzeilen

%Vor%     
Bowen Wang 25.09.2016, 16:50
quelle

2 Antworten

8

Das Problem ist, dass wenn Sie im Modus "Nein" arbeiten, die Header unwandelbar werden und Sie einige ihrer Einträge nicht ändern können. Einer der Köpfe, die du nicht ändern kannst, ist der Inhaltstyp. Wenn Sie "mode" auf "no-cors" setzen, können Sie nur diese Header ändern:

  • Accept
  • Accept-Language
  • Content-Language
  • Content-Type und dessen Wert nach der Analyse einen MIME-Typ (Parameter ignorieren) hat, der application/x-www-form-urlencoded , multipart/form-data oder text/plain ist

Mit anderen Worten, in 'mode' '-no-'cors' können Sie application/x-www-form-urlencoded , multipart/form-data oder text/plain nur auf Content-Type setzen.

Die Lösung besteht also darin, fetch nicht mehr zu verwenden oder in den 'cors' Modus zu ändern. Dies funktioniert natürlich nur dann, wenn Ihr Server auch Anfragen akzeptiert.

Hier ist ein Beispiel, wie Sie CORS in einem Apache Server aktivieren können

%Vor%

Der obige Code fügt die CORS-Header in die Antwort ein, wenn es notwendig ist. Mit diesem Code erlaubt Ihr Server CORS nur von den Domänen "url1.com" oder "url2.com".

Hier sind einige Referenzen

Stavarengo 26.09.2016, 13:49
quelle
0

Die Option mode:"no-cors" scheint das Problem zu sein. Entfernen Sie diese Option, und Content-Type sollte auf "application/json"

gesetzt werden     
guest271314 25.09.2016 17:23
quelle