AngularJS:资源没有发送带有未定义变量的参数

AngularJS: Resource not sending parameters with undefined vars

本文关键字:未定义 变量 参数 资源 AngularJS      更新时间:2023-09-26

我目前有一个带有控制器的基本表单设置,当用户提交表单时,运行这个函数:

$scope.create = function(email, username, password) {
MyService.get({
    action: 'create',
    email: email,
    username: username,
    password: password
}, function(data) {
    // Success callback
});
};

问题是,如果用户提交了一个空字段的表单,php接收这个请求会抛出一个未定义的索引错误。

示例:用户没有填写电子邮件,按了提交。php抛出错误,因为$_GET['email']是一个未定义的索引。

我怎么能得到它,使资源只是发送一个空值,如果字段是空的?(我更喜欢这添加array_key_exists检查或喜欢在php的一切)

只需分配空字符串作为回退值,如下所示:

MyService.get({
    action: 'create',
    email: email || '',
    username: username || '',
    password: password || ''
}), // ..

但是让我告诉你:仅仅依靠客户端验证通常是一个不好的做法。我希望这是一些内部项目,永远不会有一些坏人对误入歧途的请求进行掠夺。否则你最好在你的服务器代码中使用isset|empty