当前位置: 首页 > 知识库问答 >
问题:

Aurelia PHP Post请求为空$_Post

翁和正
2023-03-14

我有麻烦向服务器发出POST请求,我的数据没有发送回我。

我有一个非常简单的PHP脚本:

服务器脚本

<?php
   header('Access-Control-Allow-Origin: *');
   header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

   echo json_encode("{user-id:" . $_POST["user_id"] . "}");
 ?> 

我想对这个脚本发出一个POST请求,并获得一些JSON数据作为响应。

工作要求

如果我从HTML发出一个POST请求,这将非常有效:

<form method="post" action="http://url/post.php">
  <input type="hidden" name="user_id" value="123" />
  <button>Go to user 123</button>
</form>

这也起作用:

$.post( "url/post.php", this.data)
  .done(function( data ) {
    console.log( data );
  });

响应

"{user-id:123}"

 

不工作脚本(desire):Aurelia提取客户端(JS2016)

submit(){
    let comment = { user_id: "234" };
    this.http.fetch('post.php', {
      method: 'post',
      body: json(comment)
    })
      .then(response => response.json())
      .then(data => console.log(data));
}

提取客户端配置

config
  .useStandardConfiguration()
  .withBaseUrl('url')
  .withDefaults({
    mode: 'cors',
    headers: {
      'Accept': 'application/json'
    }
  });
});

响应

{user-id:}

php备选方案

我尝试在PHP中查看数组内部的内容,但使用implode得到了相同的结果:

echo json_encode("{user-id:" . (string)implode(" ",$_POST) . "}");

看起来Aurelia没有以正确的方式发布数据。是我在这里犯了一个错误,还是某些配置设置我不知道?

共有1个答案

劳星晖
2023-03-14

请执行以下操作,而不是“_post[”user_id“]”

$input = file_get_contents('php://input');
$input = json_decode($input);
//access user_id like this:
$input->{'user_id'}
 类似资料:
  • 问题内容: 我在用JavaScript抓取API挣扎。当我尝试通过获取将某些内容发布到服务器时,请求正文为空数组。但是,当我使用Postman时,它可以工作…这是我在NodeJS中的服务器代码: 这是我的客户: 问题是在服务器端,req.body为空。有人能帮我吗?谢谢 ! 问题答案: 问题是 从文档中 … 防止该方法成为HEAD,GET或POST之外的任何其他内容, 并且 阻止 标头成为 简单标

  • 问题内容: 所以我在与node.js一起运行的server.js文件中有以下代码。我正在使用express处理HTTP请求。 我在终端中运行以下命令: 运行该server.js后,将输出以下内容。 所以req.body是。我阅读了其他有关类似问题的Stack Overflow帖子,其中由于正文解析器,内容类型不正确。但这不是问题,因为内容类型是application / json。 有什么想法如何

  • 我已经使用spring编写了一个拦截器,它以preHandle方法从HTTPServletRequest读取请求正文。请求正文包含json。我还能够读取请求正文,但请求对象发生了一些事情,请求正文变得空白。正因为如此,这个请求正成为一个糟糕的请求。任何帮助都将不胜感激。提前谢谢。

  • 我试图实现一个< code > ContainerRequestFilter 来检查一些东西。最终,它将从SSL客户机证书中提取通用名称,但我还没有做到这一点。过滤器运行在Grizzly HTTP服务器上(Grizzly 2.3.8,没有servlet容器),位于JAX-RS资源(Jersey 2.6)的前面。 当我尝试将注入过滤器时,它为null。 将请求注入到 JAX-RS 资源中,注入是成功

  • 问题内容: 我正在尝试将JSON参数发送到我的服务器,并使用json.Decoder解析它们。我读到您应该能够从request.Body属性获取查询参数。以下是我的服务器代码: 每次,我都会看到(当然是不同的时间戳记)。我的客户端AJAX调用如下: 发送内容的示例URL: 更好看一下参数: 我已经尝试了GET和POST请求。 为什么我的req.Body从不解码?如果我尝试单独打印req.Body,

  • 下面是在帐户的所有文件上配置监视的java代码 在实际的google驱动器中进行更改时,我会在上面配置的webhook url中得到通知。 但问题是,对于每一个更改,我都得到了与监视调用响应相同的以下头部的相同值&我没有得到与更改或请求正文对应的任何适当的请求头部 有人能告诉我如何正确获取通知数据吗?我做错什么了吗? 下面是另一个问题所述的相同问题,该问题没有正确的答案,但收到谷歌驱动器推送通知