角度';s$http.post到PHP空$\u post
我有以下场景,我有一个称为角度';s$http.post到PHP空$\u post,php,angularjs,Php,Angularjs,我有以下场景,我有一个称为contact的角度变量,它是一个JSON对象,具有以下成员: 信息 名字 电话 电子邮件 Iconsole.log(contact)并记录正确的信息,但是一旦发送,$\u POST['contact']将导致一个空数组。我四处阅读,发现$\u POST['contact']不会像来自jQuery的http请求那样被填充。因此,我将其固定为以下内容: $params = json_decode(file_get_contents('php://input'),tru
contact
的角度变量,它是一个JSON对象,具有以下成员:
- 信息
- 名字
- 电话
- 电子邮件
console.log(contact)
并记录正确的信息,但是一旦发送,$\u POST['contact']
将导致一个空数组。我四处阅读,发现$\u POST['contact']
不会像来自jQuery的http请求那样被填充。因此,我将其固定为以下内容:
$params = json_decode(file_get_contents('php://input'),true);
print_r($params);
Array[0]
email
:
"asd@asd.asd"
length
:
0
message
:
"rubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOB"
name
:
"rubAWREIUVBAERWOBNATEIOB"
phone
:
"13345678"
这是角函数:
$scope.submitForm = function(contact){
console.log(contact);
$scope.clearContactFormData();
return $http.post('http://localhost/cpr_courses/app/methods/contact.php', contact).success(function(data){
Materialize.toast(data, 4000);
});
}
仍然打印($params)
为空。我不知道还发生了什么。需要帮忙吗
编辑
console.log()
输出以下内容:
$params = json_decode(file_get_contents('php://input'),true);
print_r($params);
Array[0]
email
:
"asd@asd.asd"
length
:
0
message
:
"rubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOBrubAWREIUVBAERWOBNATEIOB"
name
:
"rubAWREIUVBAERWOBNATEIOB"
phone
:
"13345678"
这是网络选项卡图像:
以下是JSON对象的声明:
$scope.contact = {};
$scope.onlyNumbers = /^[0-9]+$/;
这将在以后的表格中显示,如下所示:
<form method="post" class="form-sl" role="form" name="contactForm" ng-submit="submitForm(contact)" novalidate enctype="multipart/form-data">
<input type="email" name="email" id="email" ng-model="contact.email" autocomplete="off" ng-maxlength="50" length="50" required/>
后来,在每个领域,像这样:
<form method="post" class="form-sl" role="form" name="contactForm" ng-submit="submitForm(contact)" novalidate enctype="multipart/form-data">
<input type="email" name="email" id="email" ng-model="contact.email" autocomplete="off" ng-maxlength="50" length="50" required/>
可以吗?是一种PHP商品,用于自动解码HTML表单发送的典型POST请求的正文。换句话说,它在内容类型
请求头中需要以下值之一:
application/x-www-form-urlencoded
多部分/表单数据
application/json
,所以它仍然是空的。是一种PHP商品,可以自动解码HTML表单发送的典型POST请求的正文。换句话说,它在内容类型
请求头中需要以下值之一:
application/x-www-form-urlencoded
多部分/表单数据
因为您有
application/json
,所以它仍然是空的。查看浏览器的网络检查器实际的原始HTTP请求是什么。它与jQuery或Angular无关,PHP不知道或不关心是谁发送了请求。重要的是请求的格式以及PHP如何处理不同的格式。console.log(contact)的输出看起来如何?检查浏览器在“网络”选项卡中发送的内容,并验证它是您认为的内容,并且是有效的json。一旦您验证了这一点,echofile\u get\u contents('php://input“)
在php中(不带json_解码)并查看php得到了什么。@codeninja我不完全确定,但是,您能展示一下您是如何编写联系人对象的以及它的外观吗?因为我不确定,但它看起来不像是有效的JSON,你能验证一下你是用{}
而不是用[]
创建它的吗。。。这个日志看起来很奇怪,内容长度:请求头中的2表示浏览器正在向服务器发送[](2字节)——可能是因为您的contact
变量是一个键控数组。给定数组的长度为0,Angular可能不会费心检查其中是否有任何数据。将您的联系人
变量设置为对象,而不是查看浏览器的网络检查器实际原始HTTP请求是什么。它与jQuery或Angular无关,PHP不知道或不关心是谁发送了请求。重要的是请求的格式以及PHP如何处理不同的格式。console.log(contact)的输出看起来如何?检查浏览器在“网络”选项卡中发送的内容,并验证它是您认为的内容,并且是有效的json。一旦您验证了这一点,echofile\u get\u contents('php://input“)
在php中(不带json_解码)并查看php得到了什么。@codeninja我不完全确定,但是,您能展示一下您是如何编写联系人对象的以及它的外观吗?因为我不确定,但它看起来不像是有效的JSON,你能验证一下你是用{}
而不是用[]
创建它的吗。。。这个日志看起来很奇怪,内容长度:请求头中的2表示浏览器正在向服务器发送[](2字节)——可能是因为您的contact
变量是一个键控数组。给定数组的长度为0,Angular可能不会费心检查其中是否有任何数据。将您的联系人
变量改为对象如何解决此问题?@codennija您需要使客户端和服务器数据格式匹配。我不知道您需要哪一个,如果这是一个角度问题,这不是我的专业领域。我如何解决这个问题?@codennija您需要使客户端和服务器数据格式匹配。我不知道你需要哪一个,如果这是一个角度问题,这不是我的专业领域。