【问题标题】:Angular Defaults all $http requests to GET requestsAngular 将所有 $http 请求默认为 GET 请求
【发布时间】:2015-10-12 21:23:59
【问题描述】:

我正在使用 Laravel 5 做一个 Angular 项目。我一直在本地开发它并且工作得非常好。所有请求都正确翻译。

例如。这是我设置http方法的代码

var params = {
     url:opts.url,
     method:opts.method
};

params.params = data;

$http(params).success(function(){});

如果我的 opts.method 是 GET,它说它的 GET 如果它的 POST 它说它的 POST。

一旦我将它托管在我的数字海洋水滴上,我的 opts.method 是 POST 或 DELETE 或 PUT,它会自动转为 GET 请求。

这显然是个问题,因为我需要使用 POST 和 DELETE 请求。

有人知道为什么会失败吗?

在服务器上托管时,我通过控制台记录了 params 对象

Object {url: "/api/update/", method: "POST", params: Object}

这仍然尝试向服务器发送 GET 请求。

我不认为服务器端会这样做,就好像我伪造了它通过的请求一样,一旦 GET 请求尝试转到为POST 请求。

无论如何,这里是使用运行 Apache2 的 Ubuntu 的服务器详细信息。任何帮助将不胜感激。

【问题讨论】:

    标签: angularjs apache http laravel laravel-5


    【解决方案1】:

    如果你使用其中一种快捷方式呢?

    $http.get('/someUrl', config).then(successCallback, errorCallback);
    $http.post('/someUrl', data, config).then(successCallback, errorCallback);
    

    或者在你的情况下:

    $http[opts.method.toLowerCase()](...)
    

    https://docs.angularjs.org/api/ng/service/$http

    免责声明:我知道这不能回答问题,但我还没有足够的代表发表评论。

    【讨论】:

    • 是的,试过了,但没有用。我刚刚检查了大约 5 个小时。刚发现是laravel和斜杠。
    • 感谢您的想法!
    • 啊,多么痛苦!很高兴你想出来了。也许编辑问题以反映实际问题?
    【解决方案2】:

    后面是斜杠。在 Laravel 路由中,它是 /api/update in angular 我使用 /api/update/ 出于某种原因使 angular 使用获取请求。

    只要我更改了角度以匹配 Laravel 路线的尾部斜线。它工作得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-08
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多