【发布时间】:2015-08-16 13:43:49
【问题描述】:
现在我有一个基本的发布请求,使用 Angular 中的 $http 服务。我在 console.log 中看到状态为 200(成功)的所有内容,但在 PHP 中没有运气。我试过使用 JSON_decode,我试过 $_POST (var_dump) 没有运气。如果您能想到解决方案,请提供帮助。
app.js
var postData={
firstName:'something',
lastName:'here'
};
postData=JSON.stringify(postData);
$http({method:'POST',url:'sendmail.php',data:postData,headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
.success(function (data,status,headers,config) {
console.log('Success' + data);
})
.error(function (data, status,headers,config) {
// uh oh
console.log('error' + status + data);
});
发送邮件.php
$args = json_decode(file_get_contents("php://input"));
echo $args->firstName;
在我的 php 文件中,我收到以下错误。
注意:尝试在第 3 行的 /Applications/MAMP/htdocs/my-new-project/sendmail.php 中获取非对象的属性
但是,在我的 console.log 中,我得到了:
成功
另外,我有一个存在同样问题的现场网站。
重申一下,无论我做什么,(添加标头,JSON 解码)PHP 数组都是空的。
【问题讨论】:
-
$http自动对您的对象进行字符串化。跳过代码中的那一步 -
sendmail 是否需要一个数组?如果是这样,请尝试将 'true' 作为第二个参数添加到您的 json 解码调用中。
-
如果它期待一个数组,不明白你的意思。我试过 var_dump($data) 和 var_dump($_POST) ,两者都是空的。另外,试过了,但没有运气......有没有办法发送到一个javascript文件来查看数据是否在那里?
-
好的,这是问题....在我的 php 文件中,我执行以下操作... echo $_POST['firstName'];回声 $_POST['lastName'];这样做时,它会输出到我的控制台日志。因此,它就像 php 文件正在工作,但是我无法让它在实际的 PHP 文件上回显。
标签: javascript php angularjs post