워드프레스 '응답이 유효한 JSON 응답이 아닙니다' 오류

Last Updated: 2024년 03월 05일 | | 4개 댓글

워드프레스 사이트에서 페이지 또는 글을 작성하거나 업데이트한 후에 저장 버튼을 누르면 '업데이트 실패. 응답이 유효한 JSON 응답이 아닙니다' 오류가 발생하는 경우가 있습니다. 이 글에서는 워드프레스에서 유효하지 않은 JSON 응답 에러 발생 시 해결 방법에 대하여 살펴보겠습니다.

참고로 다른 호스팅에서 카페24로 이전한 후에 특정 플러그인이 카페24 서버 설정과 충돌을 일으켜 페이지/글을 업데이트하지 못하는 문제가 발생하기도 합니다. 이 문제에 대해서는 아래의 "카페24에서 유효하지 않은 JSON 오류가 발생하는 경우" 섹션에서 별도로 설명했으니 참고해보세요.

'응답이 유효한 JSON 응답이 아닙니다' 에러의 원인

서버로부터 예상된 응답을 수신하지 못하는 경우에 워드프레스에서 '응답이 유효한 JSON 응답이 아닙니다(Not a Valid JSON Response)' 오류가 발생합니다.

기본적으로 블로그 글을 편집하는 동안 워드프레스는 서버와 통신해야 합니다. 이를 위해 웹호스팅 서버에서 보내는 응답을 수신해야 합니다. 이 응답은 보통 자바스크립트를 사용하여 데이터를 빠르게 전송하는 데 사용되는 JSON 포맷으로 보통 이루어집니다.

어떤 이유로 인해 워드프레스에서 응답을 받지 못하거나 응답이 JSON 형식이 아닌 경우 '응답이 유효한 JSON 응답이 아닙니다' 에러가 발생하게 됩니다.

'응답이 유효한 JSON 응답이 아닙니다' 에러

이 오류는 다양한 원인으로 인해 발생할 수 있지만, 워드프레스에서 URL 설정을 잘못했거나 고유주소 문제로 인해 이 오류가 발생할 가능성이 높습니다.

워드프레스 '응답이 유효한 JSON 응답이 아닙니다' 오류 해결 방법

워드프레스에서 '응답이 유효한 JSON 응답이 아닙니다' 에러가 발생하는 경우 아래의 방법을 시도하여 문제 해결을 시도해보시기 바랍니다.

아래 작업을 시도하기 전에 사이트 백업을 철저히 할 것을 권장합니다. 백업본이 있으면 문제가 발생해도 이전 상태로 쉽게 복구할 수 있습니다.

워드프레스 주소 설정 오류

먼저 워드프레스 관리자 페이지 » 설정 » 일반으로 이동하여 워드프레스 주소와 사이트 주소가 올바른지 확인하도록 합니다.

워드프레스 주소 설정 오류

워드프레스 주소와 사이트 주소는 대부분의 사이트에서 동일합니다.

드물지만, 하위 폴더에 워드프레스를 설치할 경우 워드프레스 주소와 사이트 주소가 다르게 설정됩니다.

사이트 주소가 부정확하면 유효하지 않은 JSON 응답 오류가 발생하게 됩니다. 주소가 올바르지 않으면 주소를 정확하게 변경한 후에 하단의 '변경사항 저장' 버튼을 누르시기 바랍니다.

워드프레스 고유주소 설정 변경

고유주소를 '글 이름' 또는 '카테고리/글 이름'으로 설정하는 것이 SEO에 유리하다고 합니다("SEO에 유리한 워드프레스의 URL 구조" 참조). 저는 '카테고리/글 이름'으로 고유주소를 설정했습니다. 보통은 '글 이름'으로 설정하면 무난한 것 같습니다.

워드프레스 고유주소 설정 변경

하지만 간혹 고유주소 설정에 문제가 발생하여 워드프레스 편집기(블록 에디터)가 올바른 JSON 응답을 받지 못하는 경우가 있습니다.

이 문제를 해결하려면 워드프레스 관리자 페이지 » 설정 » 고유주소로 이동하여 고유주소 설정을 검토해보시기 바랍니다.

"글 이름"으로 되어 있다면 하단의 저장 버튼을 클릭하여 문제가 해결되는지 체크합니다. 문제가 해결되지 않으면 고유주소 설정을 '일반'으로 변경한 다음, 문제가 해결되는지 체크해보세요.

고유주소 설정을 변경하면 리디렉션을 설정해주어야 할 수도 있으므로 고유주소 설정 변경 시 신중해야 합니다. 고유주소 설정은 '글 이름' 또는 '카테고리/글 이름'을 권장합니다.

.htaccess 파일 재생성

이 항목은 위의 워드프레스 고유주소 설정과 관련이 있습니다. 워드프레스 관리자 페이지 » 설정 » 고유주소에서 하단의 저장하기 버튼을 클릭하면 .htaccess 파일이 재생성됩니다.

간혹 웹호스팅 서버에서 .htaccess 파일 쓰기 설정에 문제가 있어서 .htaccess 파일이 재생성되지 않을 수도 있습니다. 그런 경우, FTP에 접속하여 워드프레스가 설치된 폴더의 .htaccess 파일을 열고 내용을 다음과 같은 기본 .htaccess 코드로 교체한 후에 문제가 해결되는지 확인해보시기 바랍니다.

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

혹시 모르니 .htaccess 파일을 변경하기 전에 기존 .htaccess 파일을 백업하시기 바랍니다.

Rest API 오류

유효하지 않은 JSON 응답 에러는 또한 WordPress REST API에서의 오류로 인해 발생할 수도 있습니다.

워드프레스 알림판 » 도구 » 사이트 건강 (또는 사이트 상태)에서 REST API 오류가 발생하지 않는지 체크해보시기 바랍니다.

Rest API 오류

위의 그림과 같이 "REST API에서 오류가 발생했습니다" 항목이 있다면 해당 항목을 클릭하여 자세한 정보를 참조하여 문제 해결을 시도해보시기 바랍니다.

REST API 오류는 플러그인이 원인이거나 서버에서 필요한 모듈이 누락되어 발생할 수 있습니다.

워드프레스 REST API 에러 발생시 해결 방법(Apache2) 글에서는 conf 파일에 "AllowOverride All" 라인을 추가하니 해결되었다고 하네요.

apache2 재설치, OS 재설치, 이전 버전으로 롤백등의 해결 방법을 시도해봤지만 계속 해결되지 않았었는데 /etc/apache2/sites-available/000-default.conf(사이트 주소가 파일 이름일 수도 있습니다) 파일을 연 후 DocumentRoot 아래쪽에
(사이트 루트 디렉터리를 변경했다면 /var/www/html을 변경한 디렉터리로)
AllowOverride All 를 추가하니 해결되었습니다

웹호스팅을 이용하는 경우에는 호스팅 업체에 연락하여 문의해볼 수 있습니다.

모든 플러그인 비활성화

워드프레스의 많은 문제가 플러그인 충돌로 인해 발생합니다. 워드프레스 플러그인 충돌로 인해 예상치 못한 오류가 야기될 수 있고 잘못된 JSON 에러의 원인이 될 가능성도 있습니다.

모든 플러그인을 비활성화하려면 플러그인 » 설치한 플러그인으로 이동하여 모든 플러그인을 선택한 다음, 드롭다운에서 비활성화를 선택하고 적용 버튼을 클릭하면 됩니다.

모든 워드프레스 플러그인 비활성화

모든 플러그인을 비활성화했을 때 문제가 발생하지 않으면 플러그인을 하나씩 활성화하면서 문제를 일으키는 플러그인을 찾도록 합니다.

클래식 편집기 사용 (임시적인 방법)

임시적인 방법으로 클래식 편집기(Classic Editor)를 사용하면 문제가 발생하지 않을 것입니다. 플러그인 » 새로 추가에서 Classic Editor를 검색하여 고전 편집기를 설치할 수 있습니다.

한국어 버전에서 Classic Editor는 "고전 편집기"로 번역되었다가 "클래식 편집기"로 번역이 바뀌었습니다. 이 블로그에서는 고전 편집기와 클래식 편집기, 클래식 에디터 등의 표현이 혼재되어 사용될 수 있습니다. 워드프레스 한국어 버전의 번역에 어색한 부분이나 오류가 많으니 참고하세요.

워드프레스 5.0 이후부터 기본 편집기가 고전 편집기에서 블록 에디터(구텐베르크)로 바뀌었습니다. 당시 구텐베르크(Gutenberg) 편집기에 대한 강한 반발이 있었지만 우려와 달리 현재 구텐베르크 편집기가 안정화되었고 기능도 많이 개선되었습니다.

고전 편집기 플러그인은 현재 500만 개가 넘는 사이트에 설치되어 사용되고 있습니다. 하지만 고전 편집기는 20222024년까지 지원과 유지관리가 제공되며 그 이후에는 필요한 경우 지원과 유지관리 기간이 연장될 수 있습니다.

Classic Editor is an official WordPress plugin, and will be fully supported and maintained until 2024, or as long as is necessary.

지금은 블록 에디터가 안정화되었으므로 2025년 이후에는 지원이 중단될 가능성도 배제할 수 없는 것 같습니다.

블록 에디터는 단축키를 활용하면 보다 편리하게 이용이 가능합니다.

고전 편집기를 사용하여 대응하는 것은 임시적인 수단으로 고려해볼 수 있습니다. 근본적인 원인을 파악하여 문제를 해결하는 것이 바람직합니다.

다른 브라우저에서 테스트하기

이 문제와 관련하여 특이한 경험을 한 적이 있습니다. 고객 사이트에서 페이지 편집 시 '응답이 유효한 JSON 응답이 아닙니다' 오류가 발생했지만 제 컴퓨터 시스템에서는 문제가 발생하지 않았습니다.

다음과 같은 조치로 문제가 해결되는지 체크해보시기 바랍니다.

  1. 구글 크롬 브라우저에서 테스트합니다. 특히, 사파리(Safari)나 네이버 웨일 브라우저를 사용하면 예상치 못한 오류가 발생할 수 있습니다.
  2. 크롬 브라우저를 사용하는 경우 구글 크롬 주소란에 chrome://extensions/를 입력하여 익스텐션 설치 화면으로 이동하여 모든 익스텐션(확장 기능)을 비활성화한 후에 문제가 해결되는지 체크합니다.
  3. 구라제거기나 은행 앱 제거기 프로그램을 사용하여 컴퓨터의 은행 앱을 제거한 후에 문제가 발생하는지 체크합니다. ("은행클리너(BankCleaner)로 인터넷뱅킹 플러그인을 삭제하자" 참고)
  4. CCleaner와 같은 컴퓨터 정리 프로그램으로 컴퓨터를 정리한 후에 테스트합니다.

위의 3번과 4번 항목은 수시로 수행하시면 컴퓨터를 쾌적하게 사용할 수 있습니다.

카페24에서 유효하지 않은 JSON 오류가 발생하는 경우

최근 아마존 라이트세일(Amazon Lightsail)에서 운영되는 워드프레스 사이트를 카페24로 이전하는 작업을 맡은 적이 있습니다. (참고로 클라우드웨이즈를 이용하면 비교적 수월하게 AWS, Vultr 등의 서버를 선택하여 운영할 수 있습니다.)

이전 작업이 완료된 후 며칠 지나서 의뢰인께서 '응답이 유효한 JSON 응답이 아닙니다' 오류가 발생하는 문제로 연락을 해오셨습니다.

사이트를 살펴보니 Spectra라는 특정 플러그인의 기능이 사용된 페이지에서 유효하지 않은 JSON 응답 오류가 발생했습니다. 이 경우 이 플러그인을 사용하지 않으면 되겠지만, 이 플러그인을 꼭 사용해야 하기 때문에 문제 해결을 위해 위에 제시된 모든 방법을 동원했지만 해결되지 않았습니다.

결론적으로 카페24의 방화벽이 문제를 일으킨 것으로 밝혀졌습니다. 카페24에서는 웹방화벽을 제공하여 보안을 강화하고 있지만, 웹방화벽의 일부 설정이 워드프레스와 충돌을 일으키는 것으로 보입니다.

이 경우 웹방화벽을 비활성화하면 해결될 것입니다. 하지만 방화벽을 비활성화하면 보안에 문제가 발생할 소지가 있으므로 방화벽을 해제할지 신중하게 결정하시기 바랍니다. 보안이 마음에 걸린다면 다른 호스팅으로 이전도 고려해볼 수 있을 것입니다.

어떤 글을 보면 카페24에 이 문제를 문의하면 카페24에서 시간이 걸리지만 해결해준다고 하네요. 시간이 충분하다면 카페24에 이 문제 해결을 요청해보시기 바랍니다.

참고


4 개 댓글

Leave a Comment

  1. 좋은 글 잘 읽었습니다.
    위 상황과 완전히 똑같은 상황 입니다.
    호스팅은 카페24를 사용하고 있습니다.
    문의게시판에 글을 사용했는데 DB를 만져서 고객이 직접 수정을 해야 한다고 합니다.
    개발을 하시는 분들은 가능하겠지만 일반인들이 하기에는 쉽지 않아 보이는데 직접 하라고 하는건 좀 무리가 있는것 같습니다.
    결국 아직 해결을 못하고 있는 상황입니다.

    응답