php - 使用 Angular 5 将 POST 数据发送到 php
问题描述
我正在尝试将 Angular 5 的 Web 服务调用为 PHP。
我正在使用 POST 方法,但在 PHP 端检索数据时遇到问题。
发送数据显示在有效负载中,但未在 php 端检索。
角服务.ts
this.URL = "http://localhost/angular/WEBSERVICE_PHP/test.php";
const headers = new Headers();
headers.append('Content-Type', 'application/json');
let data = 'visitor_id=55';
return this.http
.post(this.URL,JSON.stringify(data),{
headers: headers
})
.map( Response => console.log(Response) );
PHP页面
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: POST, GET");
header('P3P: CP="CAO PSA OUR"'); // Makes IE to support cookies
header('content-type: text/plain');
header("content-type: application/x-www-form-urlencoded");
header("Access-Control-Allow-Headers: Content-Type, Authorization, X-
Requested-With");
header("Access-Control-Max-Age: 172800");
if(isset($_POST))
{
// $post = 'test data'; // This data get sent
// return $post;
echo $post = $_POST['visitor_id'];
return $post;
}
解决方案
“发布” JSON 时,您不会看到$_POST
.
而是这样做:
$json = file_get_contents('php://input');
$array = json_decode($json, true);
如果必须是$_POST
,您可以将 分配$array
给$_POST
。
另一种解决方案是来自 Angular 方面,而不是发送 JSON 字符串,而是发送正确的帖子!(我不是 Angular 人,也许有人可以发表评论,我会添加代码!)
推荐阅读
- macos - 无法在 Mac 的终端上运行 python 文件
- uml - 在用例图中显示添加、编辑和删除内容的合适方式是什么?
- c - 如何将 uint8_t * 复制到 char 数组
- visual-studio - xbuild 编译没有错误但没有 .exe 文件?
- javascript - 如何清除推送器的警报消息?
- asp.net - InvalidOperationException:尝试激活时无法解析类型“Microsoft.AspNetCore.Identity.UI.Services.IEmailSender”的服务
- eclipse - 将 jar 文件上传到 Azure Web App 的问题
- javascript - 在 JavaScript 中打印具有给定长度的钻石的代码
- sql - 方程需要在一个 group by 语句中吗?
- python - HTML 使用 BeautifulSoup 解析拥挤的网页