>  기사  >  백엔드 개발  >  PHP가 json 형식을 반환할 수 없으면 어떻게 해야 합니까?

PHP가 json 형식을 반환할 수 없으면 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2023-01-29 09:40:173353검색

PHP가 json 형식을 반환할 수 없는 문제에 대한 해결 방법: 1. 오류의 구체적인 원인을 확인하고 "var a=JSON.stringify(error);alert(a);"를 실행합니다. 2. PHP 코드를 수정합니다. "var b= eval("(" + data + ")");" 코드를 실행하면 충분합니다.

PHP가 json 형식을 반환할 수 없으면 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, PHP 버전 8.1, DELL G3 컴퓨터

PHP가 json 형식을 반환할 수 없으면 어떻게 해야 합니까?

php는 표준 JSON 형식을 반환할 수 없습니다. $.ajax에서 반환된 데이터는 성공 솔루션을 수행할 수 없습니다

JSON의 표준 형식: {"key":"value"," key ": "value" }

1. 다음과 같이 프런트 엔드에 코드를 제출합니다.

$.ajax({
                type: "post",
                url: "index.php?m=Index&a=accessIn&act=access",
                async: true,
                data: {
                    login_access: $('#login_access').val()
                },
                dataType: "text",
                success: function (data) {
                    if (data.codeId == "0") {
                        alert(data.err);
                    } else {
                       alert(data.err);
                      window.location.href = "index.php?m=Index&a=lockData";
                    }
                },
                error:function(error){
                    var a=JSON.stringify(error);
                    alert(a);
                }});

2. PHP 백그라운드 처리 후 반환 코드는

            $res['err']    = "欢迎您";
            $res['codeId'] = "1";

console.log(data)입니다. 다음과 같이 표시됩니다. {err: "Wrong Password received! ",codeId: "0"}, 코드 키에는 큰따옴표가 없으며 비표준 JSON 형식이므로 $.ajax에서 반환된 데이터가 실패하게 됩니다. .

셋째, 분석은 다음과 같습니다.

  • 반환된 개체 형식이 [개체 개체]이므로, 원인을 빠르게 찾으려면 문자열 형식으로 변환해야 합니다.

var a=JSON.stringify(error);
 alert(a);

형식이 잘못된 경우 올바른 경우 반환되는 오류 코드는 기본적으로 ReadyState=4, status=200입니다.

  • 첫 번째는 PHP 코드를 수정하고 표준 JSON 형식을 직접 반환하는 것입니다. 데이터 시각화 코드의 형식이 부족하기 때문에 이 예제에서는 문제를 해결하기 위해 프런트 엔드로 반환하는 방법을 사용합니다. : dataType: "text",
    반환 후 형식은 다음과 같습니다: {"err": "Wrong 비밀번호가 입력되었습니다!", "codeId": "0"}, typeof()를 수행하면 문자열 형식임을 알 수 있습니다. , 문자열을 JSON으로 변환해야 하며 eval 함수가 사용됩니다.

eval() 함수는 문자열 표현식을 실행하고 표현식의 값을 반환하는 데 사용됩니다. - 초보자 튜토리얼

var b= eval("(" + data + ")");//一定按照该格式才是标准的JSON格式
에서 발췌 프런트엔드 제출 완료 및 반환 코드:

$.ajax({
                type: "post",
                url: "index.php?m=Index&a=accessIn&act=access",
                async: true,
                data: {
                    login_access: $('#login_access').val()
                },
                dataType: "text",
                success: function (data) {
                    var b= eval("(" + data + ")");//string 2 json
                    if (b.codeId == "0") {//读取键值进行判断
                        alert(b.err);
                    } else {
                       alert(b.err);
                      window.location.href = "index.php?m=Index&a=lockData";//跳转页面;
                    }
                },
                error:function(error){
                    var a=JSON.stringify(error);//解析对象为字符串,快速确定原因;
                    alert(a);
                }});
완료!

추천 학습: "

PHP 비디오 튜토리얼"

위 내용은 PHP가 json 형식을 반환할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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