Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2-检查是否;应用程序/json“;在接受HTTP标头中受支持_Json_Http_Symfony - Fatal编程技术网

Symfony2-检查是否;应用程序/json“;在接受HTTP标头中受支持

Symfony2-检查是否;应用程序/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

我正在使用Symfony2框架构建RESTAPI

我使用“application/json”向我的客户发送响应

如何检查HTTP请求头中是否支持application/json


谢谢。

当您的客户端请求一个精确格式的响应时,它应该指定一个
接受:
头,请参阅。

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());