我正在尝试从我的 Ionic 项目以角度向我的 Laravel Dingo API 发出 POST 请求。当我在 POSTMAN 中发出 POST 请求时,它成功地创建了一条新记录,但是当我在 Angularjs 中进行时,它返回 GET 请求的响应。
这是 POSTMAN 为 Jquery 的代码建议的响应:
var settings = {
"async": true,
"crossDomain": true,
"url": "http://app.extremenazarene.org/api/contacts",
"method": "POST",
"headers": {
"authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2FwcC5leHRyZW1lbmF6YXJlbmUub3JnXC9hcGlcL2xvZ2luIiwiaWF0IjoxNDY0NjM1NDQwLCJleHAiOjE0NjQ2MzkwNDAsIm5iZiI6MTQ2NDYzNTQ0MCwianRpIjoiYmZjMTc3YzdhODk5OGE1Y2Q1NWRiYjIzOTU4YzQ5YzMifQ.fdiGmKy9ipPnvdLuapFFe8Rz6nD7ty-gkzfWq8ySO_U",
"cache-control": "no-cache",
"postman-token": "c022a35b-bbdd-2f77-f7b9-2802340dd0bb",
"content-type": "application/x-www-form-urlencoded"
},
"data": {
"fname": "sarkinda"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
我的 angularjs 请求是
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 代码返回成功响应,并为 GET 请求从同一 URL 返回数据。我相信我所有的 Laravel 代码都是正确的,因为 POSTMAN 可以成功运行调用并创建新记录。我的 angularJS 代码一定有问题。
注意我也尝试过通过 angular js 发送数据,格式如下:
data: {'fname':'testname'}