我是yiiframework的新手。
我想在Yii2 REST api中一起使用JSONP和JSON格式,这意味着如果api调用正常,响应得到json,如果用jsonp ajax调用api,得到JSONP结果,我在论坛或stackoverflow中找不到任何东西配置。我该怎么办?我将行为中的Response::FORMAT_JSON
用于控制器,但我想在控制器的行为中一起使用Response::FORMAT_JSON
和Response::FORMAT_JSONP
。如何一起配置?
答案 0 :(得分: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
);
}
}