我使用Symfony,我尝试从其他网站(ajax)获取用户ID。但它不起作用!
我的浏览器中出现此错误:
minutes_ago tran_count
0 2
1 3
2 10
3 15
4 4
5 9
6 12
7 6
8 13
9 4
10 2
我的代码是:
Access-Control-Allow-Origin
一旦我使用了用户的getter,就会出错。 如果我不使用吸气剂,则没有错误。 原始域没有问题。
好的,问题来自cookies。所以我添加了这些标题:
$response->headers->set('Access-Control-Allow-Origin', '*');
/* That does not works and returns : 'NOOOO !!!' but, no error */
if($this->get('security.authorization_checker')->isGranted('ROLE_USER'))
{
$usertosend = $this->get('security.token_storage')->getToken()->getUser();
$id = $usertosend->getId();
$response->setData(array('user'=>$id));
}
else
{
$response->setData(array('user'=>'NOOOO !!!'));
}
/* That works :*/
$usertosend = $this->get('security.token_storage')->getToken()->getUser();
/* That does not works and returns : Access-Control-Allow-Origin error*/
$id = $usertosend->getId();
我在我的ajax方法中添加了这个提及:
$response->headers->set('Access-Control-Allow-Origin', 'http://localhost');
$response->headers->set('Access-Control-Allow-Methods', 'get');
$response->headers->set('Access-Control-Allow-Credentials', 'true');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type, *');
xhrFields: {withCredentials: true},
我希望,它会帮助下一个用户。 谢谢你的帮助 :) 见到你
答案 0 :(得分:0)
您可以在symfony项目中使用NelmioCorsBundle在应用程序的响应中添加标题CORS。
这是一个非常简单快速的安装。这是一个标准的bundle,用于构建一个symfony API Rest Application,它使用外部应用程序进行调用。