2016-09-25 22 views
0

我想调试发送给Eclipse PDT中的一些AJAX PHP的HTTP POST数据,它对我来说是新的,所以我可能会犯一些非常基本的错误。来自Chrome Postman插件的POST数据在Eclipse PDT中为空

我发现了什么,似乎是一个很好的Chrome浏览器插件:PostMan

我有这样定义了我的请求:

enter image description here

这是试图模仿我AngulrJs代码(工作)

var postData = { userName: $scope.registrationData.userName, 
        email: $scope.registrationData.email, 
        password: forge_sha256($scope.registrationData.password) 
        }; 

    var url = HOST + 'api/register.php'; 

    $http.post(url, postData) 

如果我只是从浏览器页面使用AngularJs,它的工作原理和PHP返回我所预测的去它。

但是,当我用邮差,然后在我的PHP代码

$postData = file_get_contents("php://input"); 
    $request = json_decode($postData, true); 

我发现$_POST是空的。

我在做什么错误(或者有更简单的方法来调试使用Eclipse PDT的HTTP Post)?


[更新]感谢@Rubelet指出POST数据应放在正文中,而不是标题。

如果我编码它作为形式数据

enter image description here

所接收的POST数据仍然是空的。我猜测我应该使用“原始”,但我如何编码?作为JSON?

回答

1

您正在将您的数据嵌入PostMan的Header部分。这些是为HTTP Headers而不是你想要的。当使用angular的post方法时,这些参数实际上嵌入POST请求的Body部分。

把你的参数放在邮差的Body部分,它应该工作。

+0

非常感谢。我相信你是对的。我一直在编码14个小时,我的脑袋正在旋转!请参阅此问题的更新&让我们知道您的出租车帮助是否正确 – Mawg

+1

@Mawg请尝试x-www-form-urlencoded 您要检查的是您的客户是否按预期行事。如果你在浏览器中运行你的角度客户端(我希望如此),那么你可以使用类似Chrome开发工具的东西来检查你的代码是否发送了正确的请求。在网络标签 – Monokh

+0

检查这是的!先生,你是天才(现在我要去睡觉了:-)再次感谢 – Mawg