>PHP 프레임워크 >YII >yii2.0 api 게시 오류 문제 해결

yii2.0 api 게시 오류 문제 해결

藏色散人
藏色散人원래의
2020-07-20 10:26:182662검색

yii2.0 api 게시 오류에 대한 해결 방법: 1. "_csrf" 확인을 끕니다. 2. 양식에 숨겨진 필드를 추가합니다. 3. Ajax에 "_csrf" 데이터 필드를 추가합니다. 4. "post" 제출을 "get"으로 변경합니다. ".

yii2.0 api 게시 오류 문제 해결

Yii2.0에서 POST를 통해 데이터를 제출할 때 400 요청 오류가 발생했습니다.

1. 문제를 찾는 방법

Chrome 브라우저를 사용하여 오류를 확인하고, 네트워크로 이동하여 응답을 확인하세요.

Bad Request (#400): Unable to verify your date submission.   (无法验证提交的数据)

권장: "yii Tutorial"

2. Solution

(1) _csrf 검증을 끄세요

public function init(){
    $this->enableCsrfValidation = false;
}

(2) 양식에 숨겨진 필드를 추가하세요

<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">

양식을 생성하는 Yii 프레임워크는 _csrf 필드와 함께 제공되므로 추가 숨겨진 필드를 추가할 필요가 없습니다.

(3) Ajax에 _csrf 데이터 필드 추가

$.ajax({
             url: &#39;demo.php&#39;,//发送验证码的url
             type: &#39;post&#39;,
             data: {
                 _csrf:"<?=Yii::$app->request->csrfToken?>",
                 mobile:123
             },
             success: function(){
                     alert(&#39;发送成功&#39;);
             },
             error: function(){
                 alert(&#39;发送失败&#39;);
                 return false;
             }
         })

(4) 가장 쉬운 방법은 게시물 제출을 get

로 변경하는 것입니다. 참고: Yii 프레임워크에는 게시물에서 제출한 데이터가 프레임워크에 해당하는 _csrf와 동일한 검증 데이터 필드를 제출하면 제출된 데이터는 신뢰할 수 없는 필드로 간주되어 400 오류가 발생합니다.

위 내용은 yii2.0 api 게시 오류 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.