Я новичок в yiiframework.
Я хочу использовать формат JSONP и JSON вместе в API REST Yii2, это означает, что если вызов API нормальный, ответ получить json, и если вызов API с jsonp ajax, получить результат JSONP, я не могу найти что-либо на форумах или в стеке потока для настройки этого , Как мне это сделать? я использую Response::FORMAT_JSON
в поведении в контроллер, но я хочу использовать Response::FORMAT_JSON
а также Response::FORMAT_JSONP
вместе в поведении контроллера. Как настроить вместе?
использование 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
);
}
}
@turutosiya спасибо. Я знаю веб-ответы, но я использую этот код в контроллере API REST и хочу настроить конфигурацию в разделе поведения, я не хочу использовать конфигурацию ответа в действии, в yii и rest api это не нужно, мы можем настроить форматы поведения в контроллер: мой код:
public function behaviors()
{
/*
* set response header to application/json
*/
return ArrayHelper::merge(parent::behaviors(), [
'contentNegotiator' => [
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
],
]);
}
На данный момент, как настроить форматы «вместе» в поведении? У нас есть Response::FORMAT_JSONP
если вы используете Response::FORMAT_JSONP
все ответы становятся JSONP
и другие звонки не работают. я хочу, если вызов API нормально отправить JSON
ответ и если вызов API с JSONP
метод, отправить JSONP
ответ. также я хочу поместить access_token в заголовок, и я не знаю, как я могу это использовать.
Спасибо.