«Oppdatering mislyktes. Responsen var ikke en gyldig JSON-respons.»
Engelsk: Updating failed. The response is not a valid JSON response.
Blokkredigeringen får ikke lagret. Årsaken kan være permalenkene, en brannmur eller en nettadresse som blander http og https.
- Du trenger
- WP-admin
- Oppdatert
Blokkredigeringen lagrer via REST API-et i WordPress og forventer et svar i JSON-format. Feilmeldingen betyr at svaret kom i feil format, for eksempel som en feilside, en omdirigering eller en blokkeringsside fra en brannmur. Årsaken kan ligge i permalenkene, en brannmur, nettadressen eller en utvidelse som sender ugyldig JSON.
Sjekk Nettstedshelse først
Gå til Verktøy → Nettstedshelse. Står det «REST API-et støtte på en feil», ligger problemet i REST API-et og ikke i innlegget. Åpner du meldingen, ser du statuskoden fra serveren:
- 404 betyr at adressen til REST API-et ikke finnes, fordi rewrite-reglene for permalenkene mangler.
- 403 betyr at noe stopper forespørselen, for eksempel en brannmur eller en utvidelse som stenger REST API-et.
- 500 betyr at PHP stopper med en fatal feil i en utvidelse, i temaet eller i WordPress selv.
Testen kjøres fra serveren selv. En brannmur som bare blokkerer nettleseren din, vises derfor ikke her.
Se hva serveren svarte
Svaret som utløste feilen, ser du i utviklerverktøyene i nettleseren:
- Trykk F12 og åpne fanen Nettverk (Network).
- Lagre innlegget på nytt.
- Klikk på forespørselen til
wp-json/wp/v2/posts(ellerpages), og se på statuskoden og fanen Svar (Response).
Statuskoden og innholdet viser hvilket av avsnittene under som gjelder: en blokkeringsside fra en brannmur, en 404-side, en omdirigering eller PHP-advarsler foran JSON-dataene.
Lagre permalenkene på nytt
Mangler rewrite-reglene, retter dette feilen på noen sekunder.
- Gå til Innstillinger → Permalenker.
- Trykk «Lagre endringene» uten å endre noe.
- Prøv å lagre innlegget igjen.
På Apache og LiteSpeed skriver WordPress da rewrite-reglene på nytt i .htaccess. Får ikke WordPress skrevet til filen, vises reglene nederst på siden, og da limer du dem inn i .htaccess selv. Nginx leser ikke .htaccess. Der må try_files stå i serveroppsettet, som vist i artikkelen om 500-feil.
Sjekk nettadressene
Gå til Innstillinger → Generelt. «WordPress-adresse (URL)» og «Nettstedsadresse (URL)» skal begge begynne med https:// når siden har SSL-sertifikat, og de skal ha samme domene, med eller uten www. Begynner én av dem med http:// mens siden vises over https, eller er domenene forskjellige, kan REST-forespørslene bli omdirigert eller blokkert av nettleseren.
Se om brannmuren blokkerer
Sikkerhetsutvidelser som Wordfence og brannmurer hos webhotellet eller i Cloudflare kan stoppe forespørsler til /wp-json/, særlig når innlegget inneholder kode, skript eller lange lenker.
- Prøv å lagre et kort innlegg med bare vanlig tekst. Går det bra, er det innholdet brannmuren reagerer på.
- Se etter blokkerte forespørsler på tidspunktet du lagret, i loggen til sikkerhetsutvidelsen eller under Security Events i Cloudflare.
- Bruker hostingleverandøren ModSecurity, kan de se hvilken regel som slo inn, og gjøre unntak for den. Gi dem tidspunktet og adressen til innlegget.
Sjekk om en utvidelse sender ugyldig JSON
Skriver en utvidelse ut PHP-advarsler eller feilmeldinger før JSON-dataene, klarer ikke blokkredigeringen å lese svaret. Deaktiver utvidelsene én og én, og prøv å lagre etter hver.
Slår du på feilloggen, havner PHP-advarslene også i wp-content/debug.log, med filen og linjen de kommer fra. Hvordan du gjør det, står i artikkelen om kritisk feil.
Når feilen kommer ved opplasting
Kommer feilen bare når du laster opp et bilde eller en annen fil, har webserveren eller en brannmur mest sannsynlig stoppet forespørselen fordi filen er for stor. Nginx avviser forespørsler over client_max_body_size med statuskoden 413 og en HTML-side i stedet for JSON, og gratisplanen i Cloudflare avviser opplastinger over 100 MB. Statuskoden ser du i fanen Nettverk. Har du ikke tilgang til serveroppsettet, må hostingleverandøren øke grensen.
Hvis innlegget fortsatt ikke blir lagret
Får du fortsatt ikke lagret etter at du har gått gjennom permalenkene, nettadressene og brannmuren, må hostingleverandøren se i feilloggen hva som skjer med forespørslene til /wp-json/. Send dem tidspunktet og statuskoden du fant i fanen Nettverk.