programing

게시 또는 업로드에 실패했습니다.오류 메시지: "응답이 유효한 JSON 응답이 아닙니다."

powerit 2023. 3. 9. 22:26
반응형

게시 또는 업로드에 실패했습니다.오류 메시지: "응답이 유효한 JSON 응답이 아닙니다."

오늘 워드프레스에 문제가 생겼어요.WordPress admin 섹션에서 새 페이지를 만들고 새 이미지를 업로드하려고 할 때 해결 방법을 찾으려고 하지만 얻을 수 없었습니다.그래서 한 시간 동안 샌딩한 후에 해결책을 찾았어요

에러

"게시에 실패했습니다.오류 메시지:응답이 유효한 JSON 응답이 아닙니다."

settings > permalinks로 이동합니다."게시 이름"을 선택하고 저장합니다.

투고/페이지를 갱신해 주세요.동작하지 않는 경우는, [설정(Settings)]> [퍼멀링크(permalinks)]에서 다른 옵션을 선택해 주세요.

지금 바로 클래식 에디터 플러그인을 사용하여 이 문제를 해결할 수 있습니다.

오류에 대한 답은 제가 몰랐던 에디터인데 새로운 에디터 문제가 있습니다.같은 문제가 발생하는 경우는, 아래의 플러그인을 사용해 주세요.이러한 문제를 해결하기 위해 저는 이 문제에 대한 연구개발을 하고 있습니다.종료 솔루션이 나오면 바로 업데이트를 할 수 있습니까?

로컬 개발 환경에서도 동일한 문제가 발생했는데, 이 문제는 다시 쓰기 권한 때문이라는 것을 알게 되었습니다..htaccess 파일에 적절한 권한이 있는지 확인합니다.

sudo chmod 755 .htaccess

사용 권한이 설정되면 Permalink 설정을 저장합니다.문제가 해결되지 않으면 mod_rewrite가 활성화 되어 있는지 확인합니다.다음은 Ubuntu의 apache2에서 사용할 수 있습니다.

sudo a2enmod rewrite
sudo systemctl apache2 restart

그래도 작동하지 않으면 Apache 구성이 너무 엄격할 수 있습니다.다음은 Ubuntu의 apache2에 대한 트릭을 제공합니다./etc/apache2/apache2.conf를 편집하고 루트 디렉토리 블록을 찾습니다.보통 아래와 같이 /var/www가 있습니다.AllowOverride None 이 표시될 수 있습니다.로컬의 경우 아래 All like로 변경하기만 하면 됩니다.다만, 실가동 서버상에서 조사를 실시해, 시큐러티를 강화할 필요가 있을 가능성이 있습니다.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

변경 후 Apache에서 다시 시작하면 모두 정상입니다.

sudo systemctl apache2 restart

앞에서 설명한 퍼멀링크 설정을 변경하면 문제가 해결되었습니다."Post name"을 permalink 설정으로 유지하면 .htaccess 파일을 워드프레스로 쓸 수 있어야 합니다.

또는 아래를 .htaccess 파일 하단에 붙여넣을 수 있습니다.mod_rewrite 변경은 파일 맨 아래에서 먼저 실행됩니다.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

혼합 콘텐츠(HTTP 및 HTTPS URL)에 보안 문제가 있을 수 있습니다.스텝-1 1. 1.Wordpress URL을 확인합니다.[설정] - > [퍼멀링크]로 이동하여 [플레인]를 클릭하여 페이지를 저장합니다.그런 다음 오류를 제거합니다.

순서 2

  1. Wordpress URL을 확인합니다.[설정] -> [전반]으로 이동합니다.
  2. Wordpress Address 및 Site Address를 https:/

이것으로 나는 문제를 해결했다.

[ Settings ]> [ Permalinks ]으로 이동합니다.Post name에 permalink structure를 선택하고 저장합니다.이제 게시물/페이지를 저장해 보십시오.

참고로 스크린샷을 공유합니다.

여기에 이미지 설명 입력

이 문제는 해결되었어야 했다.

문제가 해결되면 원하는 경우 Permalinks에서 이전 옵션을 선택할 수 있습니다.

주의: 이미 [Post Name](투고명)을 선택한 경우 [Post Name](투고명)을 리셋하는 다른 옵션을 선택해야 합니다.

방금 클래식 에디터 플러그인을 설치했는데 "The response is not valid JSON response" 문제가 해결되었습니다.

콘텐츠를 게시하려고 할 때 동일한 "유효하지 않은 JSON 응답" 오류가 발생했습니다.WordPress는 새로운 투고/페이지를 게시할 때 JSON 투고를 하는 것 같아서 Developer Tools에서 Network 탭을 확인했습니다.이 JSON 콜의 [response]탭을 체크하면, 이 무효인 JSON 응답에 관한 상세 정보가 표시되는 일이 있습니다.

제 경우(여러분이 다를 수 있습니다) 실제 JSON 데이터 전에 권장되지 않는 디버깅메시지가 출력되어 응답이 엉망이 되었습니다.사용되지 않는 메시지를 수정한 후 게시 작업이 다시 수행되었습니다.

<br />
<b>Deprecated</b>:  Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent in <b>Unknown</b> on line <b>0</b><br />
{__NORMAL_JSON_DATA_HERE__}

/etc/nginx/sites-available/open default file --> sudo vi default 또는 sudo nano default로 이동합니다.

위치에 아래 줄 추가:

코멘트 추가: #try_files $uri $uri/=404;

다음 행을 추가합니다: try_files $uri $uri/ /index.php?$140s;

빨간색 선으로 표시된 다음 스크린샷을 참조하십시오.

여기에 이미지 설명 입력

여기에서는, 2개의 서버 블록이 있습니다.첫 번째 블록은 포트 80에서 실행되고 있습니다.두 번째 서버 블록은 포트 443에서 다음 코드를 구현해야 합니다.

{ 버{ {
configuration #ssl # #
/ { / / / {
하려고 한 후 # 요청 처리 시도, 으로 # 요청 처리,
404번, 404번입니다.
# // 이 블록에 # try_files $uri/ = 404; // 이 블록은 코멘트합니다.
/; try_files $uri $uri/ /index.suri$is_suris$s;
}
}
이제 nginx 서버를 종료하고 재시작합니다.

여기에 이미지 설명 입력

service restart ~$ sudo service nginx 입니다.

넌 끝났어.즐거운 시간 되세요.

내 경우 방화벽 문제였습니다.웹 사이트에 대해 ModSecurity 방화벽 규칙이 트리거되었습니다.호스팅 프로바이더(NameCheap)에 문의했더니 문제를 특정하고 트리거된 규칙을 서버에 화이트리스트에 올렸습니다.그 후 문제가 해결되었습니다.

아직 고쳐지지 않은 것 같아요.

나에게 효과가 있는 회피책(다른 사람에게도 효과가 있는 경우 투고)- 제 경우는 HTML 블록을 사용하고 있었기 때문에 문제가 발생했습니다.패러그래프 블록 > 편집을 HTML로 추가하여 문제를 해결했습니다.WP가 아직 조사하지 않은 것이 아쉽다, 한동안 있었던 것 같다.

같은 에러가 발생했는데, 제 경우는 페이지에서 사용되는 쇼트코드로 쇼트코드를 정의한 함수는 '반환'이 아닌 '에코'를 사용하여 데이터를 출력하고 있었습니다.

페이지 추가 및/또는 업데이트 시 다양한 랜덤 오류와 함께 동일한 오류 메시지가 나타납니다.로컬 개발 서버와 웹 호스트 모두에서 오류가 발생했습니다.기본 테마 중 하나(예: 2119)로 변경하면 오류가 사라집니다.저는 페이지 템플릿 파일에 문제가 있었습니다.새로 만든 페이지의 템플릿을 선택할 때 같은 이름의 여러 선택지가 있다는 것을 알게 되었습니다.

페이지 템플릿 파일이 몇 개 있습니다(페이지 어바웃 등).php, 연락처 페이지.php, 서비스 페이지.php 등).이 파일들을 작성할 때는 대부분의 페이지가 비슷하기 때문에 기존 파일에서 복사/붙여넣기만 하면 새로운 xxx 페이지를 만들 수 있습니다.php 파일.그러나 일부 복사된 파일(전부는 아님)에서 파일 상단에 있는 '템플릿 이름'을 수정하는 것을 잊었습니다.

모든 템플릿 파일에 고유한 이름이 있는지 확인한 후 JSON 오류가 사라졌습니다.다른 오류들도 다 사라졌어요.워드프레스 5.4를 쓰고 있어요.

저의 문제는 .htaccess와 관련된 것입니다.".htaccess 설정 문제"에 대한 LucasBr의 코멘트에서 힌트를 얻었습니다.사이트를 로컬 개발 환경에 복사했기 때문에설정에 맞게 커스텀 mod_rewrite 설정을 업데이트해야 했습니다.

중요한 행은 다음과 같습니다.

RewriteBase /

그리고.

RewriteRule . /index.php [L]

이전에는 서브디렉토리 사이트에 접속하도록 설정되어 있었습니다.

일부 커스텀 플러그인에 에코가 있기 때문에, 이것도 이 문제의 원인입니다.

계속 고민하고 있었어요.솔루션을 찾기 전에 PHP 8을 교체했습니다.이것은 커스텀 PHP 인스톨이었기 때문입니다.

하지만 아무 것도 효과가 없었어.

이 솔루션은 Drupal 설치 중에 발견되었습니다.

  1. Opcache 사용(Drupal에 한함)
  2. [ Mod ], [all](내) 및 [In my](내)httpd.iniRewrite가 3개 .Mod Rewrite는 3개입니다.

''로 요.None로로 합니다.All 한 번복하다none all 글씨,, 작은 글씨였습니다.None로로 합니다.All

httpd를 하여 합니다.httpd -k restart)(CMD)

이 문제는 해결되었습니다.

저는 제 고객 중 한 명과 다른 이유로 같은 문제가 발생했지만, 이것이 잠재적인 해결책이라고는 생각하지 못했습니다.

W.A.를 유효하게 했을 경우.F(클라우드 플레어 등) 부작용 중 하나는 이 오류일 수 있으므로 다른 솔루션이 모두 작동하지 않으면 반드시 비활성화하여 비활성화하십시오.

워드프레스와 함께 mod security 3을 사용하면 다음 메시지가 표시될 수 있습니다.

게시하지 못했습니다.응답이 유효한 JSON 응답이 아닙니다.

이 규칙을 제거하려면 다음 제외 파일에 이 규칙을 추가해야 합니다.

REQUEST-900-EXCLUSION-RULES-BEFORE-CRS

다음과 같습니다.

# Remove Publishing failed. The response is not a valid JSON response.
SecRule REQUEST_HEADERS:Host "example.com" \
     "id:1025,\
     phase:2,\
     pass,\
     nolog,\
     chain"
     SecRule REQUEST_URI "@beginsWith /wp-json/wp/v2" \
         " ctl:ruleRemoveById=933210,ctl:ruleRemoveById=949110"

규칙 ID를 변경하고 example.com을 도메인 이름으로 변경해야 할 수 있습니다.그 후 다음을 수행합니다.

sudo nginx -t

문제가 검출되지 않은 경우는, nginx 를 재기동합니다.

sudo service nginx restart
sudo systemctl restart nginx

이것은 퍼멀링크 에러입니다.

이 문제를 해결하려면 다음 절차를 수행합니다(시나리오의 원인에 따라 다름).https://wordpress786.com/updating-failed-error-message-the-response-is-not-a-valid-json-response/ :

  1. settings > permalinks
  2. nginx에 있는 경우 사이트 nginx conf 파일에 접속하여 wordpress permalinks 규칙이 포함되어 있는지 확인합니다(wordpress의 경우 nginx configurationn 참조, 헷갈리면 물어보세요).
  3. conf 파일을 편집한 경우 nginx를 재시작합니다.

이미지 업로드에 문제가 있는 경우는, https://navinrao.com/the-response-is-not-a-valid-json-response/ 를 참조해 주세요.

일반 텍스트 업데이트 중 이 문제가 발생했습니다.제가 직면한 문제는 링크()에 javascript:void(0) 키워드가 포함되어 있었기 때문입니다.

업데이트 전에 콘텐츠에 javascript가 포함된 키워드가 있는지 확인하십시오.

<a href="javascript:void(0)" target="_blank" title="Linkedin" class="social-color-3"><i class="fa fa-linkedin" aria-hidden="true"></i></a>

javascript:void(0)를 삭제하면 정상적으로 동작합니다.즐거운 시간 보내세요:)

하위 도메인을 포함하여 WordPress 사이트에 대한 모든 리디렉션을 제거해 보십시오.

언급URL : https://stackoverflow.com/questions/59009827/publishing-or-uploading-failed-error-message-the-response-is-not-a-valid-json

반응형