Symfony2-检查是否;应用程序/json“;在接受HTTP标头中受支持
我正在使用Symfony2框架构建RESTAPI 我使用“application/json”向我的客户发送响应 如何检查HTTP请求头中是否支持application/jsonSymfony2-检查是否;应用程序/json“;在接受HTTP标头中受支持,json,http,symfony,Json,Http,Symfony,我正在使用Symfony2框架构建RESTAPI 我使用“application/json”向我的客户发送响应 如何检查HTTP请求头中是否支持application/json 谢谢。当您的客户端请求一个精确格式的响应时,它应该指定一个接受:头,请参阅。json请求的头应该是这样的 标题:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} 回到控制器中,您可以过滤请求,查看它是否通过xml/http内容发送。(如A
谢谢。当您的客户端请求一个精确格式的响应时,它应该指定一个
接受:
头,请参阅。json请求的头应该是这样的
标题:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'}
回到控制器中,您可以过滤请求,查看它是否通过xml/http内容发送。(如Ajax)
希望这有帮助
干杯 检查对象上的方法
如果您的Javascript库将标题
X-request-With:XMLHttpRequest
(大多数情况下是这样),那么检查$request->isXmlHttpRequest()
是可以的,但对API没有好处。我将使用Accept
标题(因为这是它的目的)和Symfony中的方法getAcceptableContentTypes()
,如@devsheeep的响应中所述
if($request->isXmlHttpRequest())
{
$result = json_encode($json);
return new Response($result , 200 , array( 'Content-Type' => 'application/json' ));
}
$acceptsJsonContent = in_array('application/json', $request->getAcceptableContentTypes());