发布到Laravel API会返回我的GET请求

时间:2016-06-02 16:04:41

标签: angularjs api laravel ionic-framework dingo-api

我正在尝试从我的Ionic Project向我的laravel Dingo API发出POST请求。当我在POSTMAN中发出POST请求时,它成功创建了一条新记录,但是当我在Angularjs中执行它时,它会返回GET请求的响应。

这是POSTMAN为Jquery代码建议的响应:

storeContact: function(token, data) {
            var deferred = $q.defer();
            var promise = deferred.promise;
            var settings = {
                method: "POST",
                url: "/api/api/contacts/",
                headers: {
                    'Content-Type' : 'application/x-www-form-urlencoded',
                    'Authorization': 'Bearer ' +token
                },
                data: data
            };
            console.log(settings);
            $http(settings).then(function mySuccess(response) {
                deferred.resolve(response.data);
            }, function myError(response){
                deferred.reject(response.statusText);
            });


            promise.success = function(fn) {
                promise.then(fn);
                return promise;
            };
            promise.error = function(fn) {
                promise.then(null, fn);
                return promise;
            };
            return promise;
        },

我的angularjs请求是

data: {'fname':'testname'}

angularJS代码返回成功响应,并从GET请求的同一URL返回数据。我相信我的所有Laraval代码都是正确的,因为POSTMAN可以成功运行调用并创建新记录。我的angularJS代码一定有问题。

注意我也试过通过这样形成的角度js发送数据:

pFast

2 个答案:

答案 0 :(得分:0)

你的角度代码是不是在命中一个不同的端点?

  • Angular /api/api/contacts/
  • 邮递员/api/contacts

这可能是问题吗?

答案 1 :(得分:0)

所以我不知道如何修复$ http,但我使用了$ resource而现在正在使用:

.service('ContactsService1', function($resource) {
        return {
            contacts: function(token) {
                return $resource('/api/contacts/:contact',
        {contact: "@contact"},
        { get: {
                method: 'GET',
                headers: {
                    'Authorization' : 'Bearer ' + token
                }
            },
            delete: {
                method: 'DELETE',
                headers: {
                    'Authorization' : 'Bearer ' + token
                }
            },
            save: {
                method: 'POST',
                headers: {
                    'Content-Type' : 'application/x-www-form-urlencoded',
                    'Authorization' : 'Bearer ' + token
                },
                transformRequest: function(obj) {
                    var str = [];
                    for(var p in obj)
                        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                    return str.join("&");
                }
            },
        }
        )
    }}

    });

对于我的控制器,这是我的代码:

ContactsService1.contacts($scope.token).save(null, $scope.contact, function(data){
                $scope.result = data;
                console.log($scope.result);
                $state.go('menu.contacts', {}, {reload: true});
            }, function(data){
                if(data =='Unauthorized'){
                    window.localStorage.removeItem("token");
                    $state.go('login');
                }else{
                    //console.log(data);
                }
            });