【问题标题】:AngularJS $http POST turn into GETAngularJS $http POST 变成 GET
【发布时间】:2017-10-17 07:00:55
【问题描述】:

我有一条路线

Route::post('/updateLogo', 'CaptivePortalController@updateLogo');

那我在这里做一个POST

$http({
    method: 'POST', <----- I did a POST 
    url: '/updateLogo',
    headers: { 'Content-Type': undefined },
    transformRequest: function (data) {
        console.log("data coming into the transform is ", data);
        var formData = new FormData();
        formData.append("company_logo_path", data.files);
        console.log($scope.files.company_logo_path);
        return formData;
    },
    data: { files: $scope.files.company_logo_path }
})

.then(function successCallback(response) {
    console.log("success");
    console.log(response);
    $('.save-fade').delay(500).fadeOut(1000);
}, function errorCallback(response) {
    console.log("fail");
    console.log(response);
});

当我浏览文件并提交表单时,我不断收到

405 在我的Network tabChrome Dev Tool


然后,我点击它,我看到了

RouteCollection.php 第 218 行中的 MethodNotAllowedHttpException:

我知道我不应该对 POST 路由进行 GET,但为什么它会发出 GET 请求而不是 POST?

Request URL:http://l.ssc.com:8888/en/updateLogo
Request Method:GET <------ 
Status Code:405 Method Not Allowed
Remote Address:127.0.0.1:8888
Referrer Policy:no-referrer-when-downgrade

这里做错了什么?

有什么提示吗?

【问题讨论】:

  • 您对“/updateLogo”还有其他请求吗?
  • 我该如何检查?我通过 $http 进行 POST 的方式有问题吗?

标签: javascript angularjs laravel laravel-5 angular-file-upload


【解决方案1】:

这看起来像是正在发生重定向。 参考:$http.post() method is actally sending a GET

请检查您在服务器上的路由配置,确保它与您请求的完全相同。

如果您正在请求“/myroute”,但您已将路由定义为“/myroute/”,那么您的服务器可能会重定向到“/myroute”。

所有重定向都是使用 GET 完成的。 由于该路由不允许 GET 请求,因此它返回 405。

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多