Symfony:访问控制允许来源(';安全性。令牌存储)
我与Symfony合作,并尝试从另一个网站(ajax)获取用户id。但它不起作用 我的浏览器中有以下错误:Symfony:访问控制允许来源(';安全性。令牌存储),symfony,fosuserbundle,Symfony,Fosuserbundle,我与Symfony合作,并尝试从另一个网站(ajax)获取用户id。但它不起作用 我的浏览器中有以下错误: Access-Control-Allow-Origin 我的代码是: $response->headers->set('Access-Control-Allow-Origin', '*'); /* That does not works and returns : 'NOOOO !!!' but, no error */ if($this->get('security.
Access-Control-Allow-Origin
我的代码是:
$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();
当我使用用户的getter时,就出现了一个错误。
如果我不使用getter,就没有错误。
源域没有问题
好的,问题来自饼干。因此,我添加了以下标题:
$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, *');
我在ajax方法中添加了这一点:
xhrFields: {withCredentials: true},
我希望,它将帮助下一个用户。 谢谢你的帮助:)
再见您可以在symfony项目中使用NelmioCorsBundle,在响应应用程序时添加标题CORS 这是一个非常简单和快速的安装。这是一个标准包,用于构造一个symfonyapirest应用程序,该应用程序通过外部应用程序调用
您可以在symfony项目中使用NelmioCorsBundle,在响应应用程序时添加标题COR 这是一个非常简单和快速的安装。这是一个标准包,用于构造一个symfonyapirest应用程序,该应用程序通过外部应用程序调用 谢谢你的帮助。:)它不工作:(问题来自用户。如果我使用用户的getter,则会发生错误。可能,我必须允许用户令牌存储的来源,我不知道:(感谢您的帮助。)它不工作:(问题来自用户。如果我使用用户的getter,则会发生错误。可能,我必须允许用户令牌存储的来源,我不知道:(
$.ajax({
type: 'get',
url: 'http://myurl.com',
xhrFields: {withCredentials: true},
success: function(user){
alert(user.user);
}