【问题标题】:how to post with ajax to secured controller in Symfony2如何使用 ajax 发布到 Symfony2 中的安全控制器
【发布时间】:2015-02-05 16:21:05
【问题描述】:

我正在尝试将 Json 数据类型发送到安全控制器 (is_granted(ROLE_ADMIN)),但是,正如您猜到的那样,我无法让它工作,我得到了 405 method not allowed 响应。

当我将它发送到不安全的控制器时它可以工作,所以我必须让控制器知道帖子是以管理员角色发送的,但是如何?

这是我的控制器:

/**
* @Route("/admin")
* @Security("is_granted('ROLE_ADMIN')")
*/
class AdminController extends Controller {

    /**
    * Lists all Project entities.
    *
    * @Route("/savesortorder", name="save_sort_order")
    * @Security()
    */
    public function orderAction(Request $request) {
      $response = json_encode(array('message' => 'Saved succesfully!'));
      return new Response($response, 200);
    }

这是我的 ajax 帖子:

$.ajax({
    url: "/TMC/web/app_dev.php/admin/project/savesortorder",
    type: 'POST',
    dataType: 'json',
    data: object,
    cache: false,
    success: function () {

【问题讨论】:

  • 您的管理员控制器具有基于角色的安全性,您正尝试匿名发布数据。随请求发送应用程序身份验证凭据
  • 我从来没有遇到过ajax这个错误,检查没有ajax的url,看看你是否使用ROLE_ADMIN登录

标签: php ajax symfony


【解决方案1】:

你做错了,通过 symfony 路由发送:

url: "{{ path('save_sort_order') }}",

这应该就是你所需要的

【讨论】:

  • 您以正确的方式帮助了我,在我的情况下,'/savesortorder' 是解决方案。上面的 url 不起作用,因为我在外部脚本中有 java 代码。谢谢!
猜你喜欢
  • 2017-05-27
  • 1970-01-01
  • 2015-01-28
  • 2016-12-07
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多