【问题标题】:krakenjs angularjs $http method="delete" not workingkrakenjs angularjs $http method="delete" 不起作用
【发布时间】:2014-03-28 04:08:59
【问题描述】:

在 KrakenJs 中,我发现了一种通过在正文中传递“_csrf”参数来发出 POST/PUT/DELETE 请求而不关闭“csrf”的解决方法

在 index.dust ->

    <input id="csrfid" type="hidden" name="_csrf" value="{_csrf}">

在 myScripts.js ->

    var csrf = document.getElementById('csrfid').value;
    $http({  method: 'POST',
        url: 'http://localhost:8000/myRoute/',
        data: { '_csrf': csrf, 'object': myObject }
      }).success(function(result) {
        //success handler
      }).error(function(result) {
        //error handler
      });

它可以完美地处理 POST/PUT 请求。但是当我尝试进行 DELETE 时,它会以 500 失败

但是我已经尝试过 jQuery DELETE 并且效果很好...问题出在 AngularJs... 之前有人遇到过吗?

【问题讨论】:

    标签: jquery angularjs csrf http-delete kraken.js


    【解决方案1】:

    您使用的是哪个版本的 angular.js?

    根据this 的讨论,如果您使用快捷方式 $http.delete,angular.js 似乎不会发送请求正文,但如果您使用 {method: 'DELETE'} 则会发送请求正文。还有一个问题是,通常一些浏览器不会发送删除请求的正文,但这似乎不是您的问题,因为它可以与 JQuery 一起使用。

    我询问了 angular.js 的版本,因为这种解决方法可能在某些版本中不起作用。

    【讨论】:

    • AngularJS v1.2.13 是否有任何其他已知的解决方法,以便我可以发出删除请求..而不关闭“csrf”..我不想单独在我的项目中包含 jQuery .
    • 看起来您可以将标头设置为不同的 csrf 解决方法? stackoverflow.com/questions/14109927/…
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2022-11-22
    相关资源
    最近更新 更多