Javascript 发送空邮件

Javascript 发送空邮件,javascript,php,json,angular,Javascript,Php,Json,Angular,我正试图使用POST请求将数据从应用程序发送到服务器,但我的服务器接收到空POST 以下是发送功能: php脚本返回空Json:[] 我尝试将JSON.stringify转换为数据,但没有成功 我做错了什么 谢谢 编辑: 以下是开发人员控制台的屏幕截图: 编辑2: 使用put时,数据在服务器端检索。这是angular 2 POST的一个问题,可能是cors问题,请尝试将代码更新到此位置 postCharacter(mule: Mule): Promise<Mule>

我正试图使用POST请求将数据从应用程序发送到服务器,但我的服务器接收到空POST

以下是发送功能:

php脚本返回空Json:[]

我尝试将JSON.stringify转换为数据,但没有成功

我做错了什么

谢谢

编辑:

以下是开发人员控制台的屏幕截图:

编辑2:


使用put时,数据在服务器端检索。这是angular 2 POST的一个问题,可能是cors问题,请尝试将代码更新到此位置

      postCharacter(mule: Mule): Promise<Mule> {
      let headers = new Headers(this.headers);
      let options = new RequestOptions({ headers: headers });
      return this.http.post(
              "http://www.super-secret-url.com/testPost.php",mule,options  
          )
          .toPromise()
          .then(response => response.json() as any)
          .catch(this.handleError);
  }
postCharacter(mule:mule):承诺{
let headers=新的headers(this.headers);
let options=newrequestoptions({headers:headers});
返回this.http.post(
"http://www.super-secret-url.com/testPost.php“、骡子、选项
)
.toPromise()
.then(response=>response.json()如有)
.接住(这个.把手错误);
}

可能是cors问题,请尝试将您的代码更新到此版本

      postCharacter(mule: Mule): Promise<Mule> {
      let headers = new Headers(this.headers);
      let options = new RequestOptions({ headers: headers });
      return this.http.post(
              "http://www.super-secret-url.com/testPost.php",mule,options  
          )
          .toPromise()
          .then(response => response.json() as any)
          .catch(this.handleError);
  }
postCharacter(mule:mule):承诺{
let headers=新的headers(this.headers);
let options=newrequestoptions({headers:headers});
返回this.http.post(
"http://www.super-secret-url.com/testPost.php“、骡子、选项
)
.toPromise()
.then(response=>response.json()如有)
.接住(这个.把手错误);
}

类似的事情最终对我起了作用:

postCharacter(mule: Mule): Promise<Mule> {

return this.http.post(
        "http://www.super-secret-url.com/testPost.php", 
        mule, 
        { headers: this.headers }
    )
    .toPromise()
    .then(response => response.json() as any)
    .catch(this.handleError);
}
postCharacter(mule:mule):承诺{
返回this.http.post(
"http://www.super-secret-url.com/testPost.php", 
骡子,
{headers:this.headers}
)
.toPromise()
.then(response=>response.json()如有)
.接住(这个.把手错误);
}
服务器将不会接收阵列

在服务器上使用


$\u POST=json\u解码(文件\u获取\u内容('php://input",对),

类似的东西最终对我起了作用:

postCharacter(mule: Mule): Promise<Mule> {

return this.http.post(
        "http://www.super-secret-url.com/testPost.php", 
        mule, 
        { headers: this.headers }
    )
    .toPromise()
    .then(response => response.json() as any)
    .catch(this.handleError);
}
postCharacter(mule:mule):承诺{
返回this.http.post(
"http://www.super-secret-url.com/testPost.php", 
骡子,
{headers:this.headers}
)
.toPromise()
.then(response=>response.json()如有)
.接住(这个.把手错误);
}
服务器将不会接收阵列

在服务器上使用



$\u POST=json\u解码(文件\u获取\u内容('php://input",对),

您是否检查了浏览器中的开发者控制台
F12
网络选项卡ajax响应??然后执行
退出操作
after
echo json\u encode($\u POST)
并删除结束标记
?>
,以防止json数据(如空格)中的非法输出。是的,我检查了开发人员控制台,响应为空。我尝试删除结束标记并添加一个仍然为空的出口:(您在
$\u POST
中期望得到什么?您是否测试了
$\u请求
?您是否
var\u dump($\u POST)
以查看是否所有设置都正确?您是否测试了
echo json\u encode(数组('myJson'=>'testData'))
?尝试查找应用程序的错误部分。!我很确定问题不在服务器端。我尝试了
var\u dump($\u POST)
var\u dump($\u REQUEST)
,仍然是空数组。我还尝试了
echo json\u encode(array('myJson'=>'testData'));
我收到了数据。你注意到请求负载是json而不是POST数据吗?在执行http.POST时删除头。只有从服务器发送时才需要头,所以javascript(或客户端上的任何应用程序)知道明文数据可以转换为json对象。您是否在浏览器
F12
network选项卡ajax response>中检查开发人员控制台,并在
echo json\u encode($\u POST)之后执行
exit;
并删除结束标记
?>
以防止json数据(如空格)中的非法输出。是的,我检查了开发人员控制台,响应为空。我尝试删除结束标记并添加一个仍然为空的出口:(您在
$\u POST
中期望得到什么?您测试了
$\u请求了吗?
是否进行了var\u转储($\u POST)
查看是否所有设置都正确?您是否测试了
echo json\u encode(数组('myJson'=>'testData'));
?尝试查找应用程序的错误部分!我非常确定问题不在服务器端。我尝试了
var\u dump($\u POST)
var\u dump($\u请求)
,仍然是空数组。我还尝试了
echo json\u encode(数组)('myJson'=>'testData');
我收到了数据。你注意到请求负载是json而不是POST数据吗?在执行http.POST时删除头。只有从服务器发送时才需要头,所以javascript(或客户端上的任何应用程序)知道可以将明文数据转换为json对象。您需要从“@angular/Http”导入这些
import{Http,Response,Headers,RequestOptions};
I无法为Headers分配选项:类型为“{Headers:RequestOptions;”的参数'不可分配给'RequestOptionsArgs'类型的参数。属性'headers'的类型不兼容。类型'RequestOptions'不可分配给类型'headers'。类型'RequestOptions'中缺少属性'append'。仍然是空的帖子:(您能在浏览器的网络选项卡中看到请求负载吗?您可以使用
https://mpant.quora.com/A-simple-HTTP-service-using-Angular2-with-errror-handling
要了解如何在Angular2中编写简单的ajax服务,您需要导入这些
import{Http,Response,Headers,RequestOptions}从“@angular/http”;
我无法将选项分配给头:类型为“{headers:RequestOptions;”的参数'不可分配给'RequestOptionsArgs'类型的参数。属性'headers'的类型不兼容。类型'RequestOptions'不可分配给类型'headers'。类型'RequestOptions'中缺少属性'append'。仍然是空的帖子:(您能在浏览器的网络选项卡中看到请求负载吗?您可以使用
https://mpant.quora.com/A-simple