Symfony:访问控制允许来源(';安全性。令牌存储)

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.

我与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.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);
}