当我使用$http.get
我的代码时,但是如果我使用$ http.post,则永远不会将参数获取到请求.php文件中。
这是服务功能:
TestPanel.service('MySampleService', function ($http, $q) {
this.getAllPosts = function () {
var def = $q.defer();
$http.post('/data/AJAXRequest.php', 'mydata=1&abcd=2').success(function (data) {
if (data == null)
def.reject('ERROR: DATA IS NULL');
else if (data.HasError)
def.reject('ERROR: ' + data.Message);
else
def.resolve(data);
}).error(function () {
def.reject('ERROR: Sorry, unable to complete your request.');
});
return def.promise;
}
});
和控制器功能:
TestController.controller('PostCtrl', ['$scope', '$http', 'MySampleService',
function ($scope, $http, MySampleService) {
function FetchPostsList() {
MySampleService.getAllPosts().then(function (data) {
$scope.lstPosts = data.ResponseData;
$scope.totalRecords = data.totalRecords;
console.info('DATA=' + $scope.lstPosts);
},
function (err) {
console.info('err=' + err);
});
}
FetchPostsList();
}
]);
和我的AJAXRequest.php文件
<?php
var_dump($_POST)
?>
如果我使用 $ http.post()
输出 :
array (size=0)
empty
如果我使用 $ http.get(), 我的输出是:
array (size=2)
'mydata' => string '1' (length=1)
'abcd' => string '2' (length=1)
我检查了FireBug工具中的帖子,该帖子将数据发送到我的php文件中。但PHP文件没有参数。
如果我使用 $ .ajax 或 $ .post 我的代码工作,它会给出响应。
如果您在标头中指定内容类型怎么办,特别是这样:
$http({
method: 'POST',
url: '/data/AJAXRequest.php',
data: { mydata: 1, abcd: 2 },
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(....);
找到了与PHP有关的注释,专门针对此问题:AngularJs $http.post()不发送数据
看来Angular默认以application / json的形式发送,这可能会使PHP感到困惑。
因此,我在一个控制器中有一个非常简单的代码片段,在这个代码片段中,我使用从外部文件中获取数据,它工作得很好!但是当我使用时,我会在控制台中得到一个
我试图通过AngularJS使用返回JSON的$http.post进行Web2.0 API调用,尽管这听起来很奇怪,但它在一个小时前工作过,现在不工作了,而且我没有做任何改变。该应用程序在所有其他浏览器中继续工作,只是在Edge中失败了。 编辑:忘了提到-当Fiddler打开并捕获流量时,应用程序可以工作。那是最奇怪的部分。
我试图提出一个$http.post请求,但我有以下错误: XMLHttpRequest无法加载https://mipage.com/examplephp.请求标头字段Content-Type不允许访问控制允许标头在飞行前响应。 如果我将$http.post更改为$http.get请求,则服务器响应将使用JSON,因此。。我认为这不是CORS的问题。我还在爱奥尼亚项目中放置了一个代理。 这是我的功能
但是,有没有一种方法可以使用$http.post()来实现这一点?我是否必须始终包含头部才能使其工作?我相信上面的内容类型指定了发送数据的格式,但是我可以将它作为javascript对象发送吗?
问题内容: 谁能告诉我以下语句为什么不将帖子数据发送到指定的URL?调用了url,但是在打印$ _POST时在服务器上- 我得到一个空数组。如果我在将消息添加到数据之前在控制台中打印消息-它显示正确的内容。 我也尝试过将数据作为字符串(具有相同的结果): 当我以以下格式使用它时,它似乎可以正常工作: 但是有没有办法用$ http.post()做到这一点- 我是否总是必须包含标头才能使其正常工作?我