2

我是 yiiframework 的新手。

我想在 Yii2 REST api 中同时使用 JSONP 和 JSON 格式,这意味着如果 api 调用正常,响应得到 json,如果使用 jsonp ajax 的 api 调用,得到 JSONP 结果,我在论坛或 stackoverflow 中找不到任何配置. 我该怎么做?我Response::FORMAT_JSON在行为中使用控制器,但我想在行为中一起使用Response::FORMAT_JSON控制器Response::FORMAT_JSONP。如何一起配置?

4

1 回答 1

2

使用类format的属性yii\web\Response

public class YourController extends Controller {
    /**
     * json/jsonp witching example
     */
    function actionJson(
        $callback = null
    ) {
        // retrieve data to be returned
        $data = array(
            // your data here
        );
        // set "fomat" property
        Yii::$app->getResponse()->format =
            (is_null($callback)) ?
                self::FORMAT_JSON : 
                self::FORMAT_JSONP;
        // return data
        return (is_null($callback)) ?
            $data :
            array(
                'data'     => $data,
                'callback' => $callback
            );
    }
}
于 2014-12-19T09:03:44.893 回答