Angular $ http发送get而不是post

时间:2017-03-18 11:10:08

标签: javascript angularjs laravel http methods

$http.post(main+'/api/getcard/', $.param({number: $scope.searchcard}), {headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'} })
        .then(function (response) {
            if(response.data != 0)
            {
                $location.path('/redeem/'+response.data.id);
                console.log(response.data);
            }
        });

当我使用此代码时,我的chrome发送:

Request URL:http://cards.mporeda.pl/branch/api/getcard
Request Method:GET
Status Code:405 Method Not Allowed

但是当我在laravel服务localhost:8000上使用相同的代码时,我得到:

Request URL:http://localhost:8000/branch/api/getcard/
Request Method:POST
Status Code:200 OK

我在请求中只有这个标头选项不再有$ http配置。在此请求之前我在控制台上没有错误,所以我问我的代码是否正常。我的服务器有什么问题吗?

1 个答案:

答案 0 :(得分:7)

您的代码提出请求的网址是:

main+'/api/getcard/'

您的请求所使用的网址是:

Request URL:http://cards.mporeda.pl/branch/api/getcard

这很可能是由以下原因造成的:

  1. 您向尝试向
  2. 发送POST请求的网址发出POST请求
  3. 服务器以301或302状态响应,并且Location标头重定向到同一网址,但最后没有/
  4. 重定向后的浏览器并发出GET请求
  5. 如果您查看请求列表,则应该看到POST请求。

    要解决此问题,您需要查看发出重定向的服务器端代码。