2017-11-15 5 views
0

Yii2를 사용하여 웹 프로젝트를 만들고 싶습니다. JSON을 AJAX로 반환하고 싶습니다. json_encode()Yii::$app->response->format = Response::FORMAT_JSON;을 사용했지만 여전히 작동하지 않습니다.yii2에서 JSON을 ajax로 반환하는 방법

public function actionAbout(){ 
    Yii::$app->response->format = Response::FORMAT_JSON; 
    return json_encode(["test"=> 1]); 
} 
여기

내 AJAX :

여기 내 작업입니다

$.ajax({ 
    type: "POST", 
    // dataType: 'json', 
    data: { 
    'user': 'A' 
    }, 
    url: "?site/about", 
    contentType: "application/json", 
    success: function(data) { 
    console.log(typeof(data)); 
    console.log(data) 
    }, 
    error: function (data) { 
    console.log(data); 
    }, 
}); 

그러나이 반환 여전히

<!DOCTYPE html>.... 

html로. 그것을 해결하는 방법? 대신

return json_encode(["test"=> 1]);

를 사용

+0

작품 벌금을 사용할 때 당신은 당신의 컨트롤러에서 응답 형식을 지정할 필요가 없습니다. 응답 타입을 FORMAT_JSON으로 설정할 때 배열 자체를'json_encode'해서는 안됩니다. 완전한 응답은 무엇입니까? – jagsler

답변

0

당신이

echo json_encode(["test"=> 1]);

처럼 반향해서는 안 플러스는 JSON에 응답 유형을 설정하는 경우 당신은 할 필요가 없습니다 배열을 JSON으로 인코딩하십시오.

-1

성공 콜백에서 응답을 구문 분석해야합니다. 이처럼 사용

... 
success: function(data) { 
    var json = JSON.parse(data); 
    console.log(json); 
}, 

그리고 당신은 이미 나에게로 json_encode()