AngularJS $ http POST转为GET

时间:2017-05-17 17:20:23

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

我有路线

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 tab上的{p> Chrome Dev Tool

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

  

RouteCollection.php第218行中的MethodNotAllowedHttpException:

enter image description here

我知道我不打算对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

这里做错了什么?

任何提示?

1 个答案:

答案 0 :(得分:1)

这看起来像是一个重新定向。 参考:$http.post() method is actally sending a GET

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

如果您要求'/ myroute',但您已将路线定义为'/ myroute /',那么您的服务器可能会重定向到'/ myroute'。

所有重新指示均使用GET完成。 由于该路线不允许GET请求,因此返回405.