我有一个带有标签的表格 ng-submit="login()
该函数在javascript中被很好地调用。
function LoginForm($scope, $http)
{
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
$scope.email = "fsdg@sdf.com";
$scope.password = "1234";
$scope.login = function()
{
data = {
'email' : $scope.email,
'password' : $scope.password
};
$http.post('resources/curl.php', data)
.success(function(data, status, headers, config)
{
console.log(status + ' - ' + data);
})
.error(function(data, status, headers, config)
{
console.log('error');
});
}
}
我从PHP文件中获得了200 OK响应,但是返回的数据就是这样,email
并且password
未定义。这就是我拥有的所有php
<?php
$email = $_POST['email'];
$pass = $_POST['password'];
echo $email;
?>
知道为什么我会得到未定义的POST
值吗?
编辑
我想指出,因为这似乎是一个受欢迎的问题(但它是旧的),.success
并.error
已被弃用,你应该使用.then
如@詹姆斯氏族在commments指出
angularjs .post()
默认将Content-
type标头设置为application/json
。您要覆盖此内容以传递表单编码的数据,但是您没有更改data
值以传递适当的查询字符串,因此PHP并未$_POST
按预期填充。
我的建议是只使用默认的angularjs设置application/json
作为标头,读取PHP中的原始输入,然后反序列化JSON。
可以这样在PHP中实现:
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;
或者,如果您严重依赖$_POST
功能,则可以形成类似的查询字符串email=someemail@email.com&password=somepassword
并将其作为数据发送。确保此查询字符串是URL编码的。如果是手动构建的(而不是使用类似的东西jQuery.serialize()
),则Javascript
encodeURIComponent()
可以为您解决问题。
问题内容: 我有一个带有标签的表格 该函数在javascript中被称为罚款。 我从PHP文件中获得了200 OK响应,但是返回的数据就是这样,并且未定义。这就是我拥有的所有php 知道为什么我会得到未定义的值吗? 编辑 我想指出,因为这似乎是一个受欢迎的问题(但它是旧的),并已被弃用,你应该使用如@詹姆斯氏族在commments指出 问题答案: angularjs 默认将Content- typ
问题内容: 好吧,我已经建立了我的json字符串,但是我不确定下一步该怎么做? 在我的php文件中,我试图将dataString写入文本文件,这样我可以看到它通过ok,但是文本文件中什么都没有!我在客户端或PHP方面做错了什么,我的php代码: 问题答案: 您为什么不尝试像这样构造数据 然后在您的AJAX通话中 现在,您的PHP脚本可以将数据作为多维数组处理
问题内容: 我正在使用angularjs和Typescript创建一些应用程序,但是我无法解决此错误, 这是我的* .ts代码 这是我的GULP任务 这是我的错误:未捕获的ReferenceError:导出未定义 问题是:如何在打字稿中使用类似es6的导入?我缺少什么? 问题答案: 我使用angular 1.6和webpack,当我将模块更改为 “ umd”* 时,它可以在我这边使用 * UMD:
我有一个Azure WebJobs,我正在从Visual Studio 2017发布到标准S1应用服务,WebJobs应该由CRON触发,但总是发布为连续,我不知道我做错了什么(另外两个WebJobs发布罚款) 我在根目录下有一个settings.job文件和我的日程安排 我的程序课 以及正在调用的函数
发布到DynamoDB,以便用户登录。 致命错误:未捕获的异常'Aws\DynamoDb\Exception\DynamoDbException',带有消息'在“https://dynamodb.us-east-1.amazonaws.com”上执行“GetItem”时出错;AWS HTTP错误:客户端错误:导致响应:{"__type":"com.amazon.coral.validate#Val