Angular默认所有$ http请求到GET请求

时间:2015-10-12 21:24:00

标签: angularjs apache http laravel laravel-5

我正在与Laravel 5进行一个有角度的项目。我一直在本地开发这个并且工作得非常好。所有请求都正确翻译。

例如。这是我的代码设置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请求。

我认为这不会是服务器端这样做,好像我假装请求它正常,Laravel将返回405方法不允许一旦GET请求尝试转到为POST请求。

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

2 个答案:

答案 0 :(得分:2)

如果使用其中一种快捷方式会怎样?

$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

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

答案 1 :(得分:0)

这是斜杠。在Laravel路线中,它是/ api / update in angular I used / api / update /由于某种原因使得角度使用获取请求。

一旦我改变角度以匹配Laravel路线的拖尾斜线。它工作正常。