资源POST充当GET方法angularjs

时间:2014-03-28 09:32:34

标签: php angularjs angular-resource

我正在尝试学习angularjs,所以今天我尝试使用资源。 看起来它在语法和方法调用方面都很出色,

请先打开FIDDLE

最初我尝试使用$ http POST,看起来很有效

$http({url: '/register.php', method: "POST",
data: { 'message' : {userName:'ravi'}}});

使用PHP代码:

    $data = file_get_contents("php://input");
    $objData = json_decode($data);
    ....
    ....
    //insert stmt to mysql

接下来,当我尝试使用$ resource时,使用

在registerController中

authProviders.saveUser($scope.newuser); 

在authProviders服务中:

return $resource(AppConstants.ServerPath + '/register.php/:registerId',
            {registerId: '@registerId'},{
                saveUser: {
                    method: 'POST',
                    params: {   message: {userName:'ravi'} },
                    isArray: false
                }
            });

调用就像get方法一样。 请你的身体在这些中纠正我。

我的问题: 当您填写表格并提交小提琴时,控制台中的URL看起来像

http://fiddle.jshell.net/register.php?message=%7B%22userName%22:%22ravi%22%7D 这看起来像GET方法,即使通过方法类型是POST

先谢谢。

2 个答案:

答案 0 :(得分:0)

从资源中删除参数:

 return $resource(AppConstants.ServerPath + '/register.php/:registerId',
        {registerId: '@registerId'},{
            saveUser: {
                method: 'POST',
                params: {   message: {userName:'ravi'} }, //Remove This
                isArray: false
            }
        }); 

答案 1 :(得分:0)

如果你想使用GET方法,那么你必须说

  

方法:' GET'
  参数:{message:{userName:' ravi'}},

如果你想把它作为POST,那么

  

方法:' POST'
  数据:{message:{userName:' ravi'}},