我正在与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。任何帮助将不胜感激。
答案 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路线的拖尾斜线。它工作正常。