【问题标题】:Why is angularjs url encoding my POST params?为什么 angularjs url 编码我的 POST 参数?
【发布时间】:2017-11-24 15:19:13
【问题描述】:

这是我们服务中的其余客户端:

self.headers = {
        Accept: 'application/json',
        'Content-Type': 'application/json'
    };

self.loginClient = $resource(self.baseUrl + '/users/login', {
        userId: '@userId',
        password: '@password'
    }, {
        save: {
            method: 'POST',
            headers: self.headers
        }
    });

我这样称呼它——

AuthService.loginClient.save({
        userId: self.user.email,
        password: self.user.password
    }).$promise.then(function (res) {
        // do stuff
    })

浏览器点击的 URL 路径如下所示:

/users/login?password=XXXXXX&rememberMe=false&userId=XXXXXX

谁能告诉我这里有什么错误导致我的 POST 参数的 url 编码?请让我知道我可以提供哪些其他信息。

【问题讨论】:

  • 为什么要在 URL 参数中发送密码?
  • 这是一个旧端点。我们正在更新它们。

标签: javascript angularjs post xmlhttprequest urlencode


【解决方案1】:

只需将数据传递给操作方法。像这样更改服务

self.headers = {
        Accept: 'application/json',
        'Content-Type': 'application/json'
    };

self.loginClient = $resource(self.baseUrl + '/users/login',  {
        save: {
            method: 'POST',
            headers: self.headers
        }
    });

这样称呼

AuthService.loginClient.save({},{
        userId: self.user.email,
        password: self.user.password
    })

【讨论】:

  • 此格式适用于我们的其他服务。我真的只是想知道为什么它正在编码应该作为正文中的对象发送的内容。
  • 是啊..我很怀疑,但试了一下。这对我不起作用。
  • 我不得不摆弄你在这里的东西,但我得到了它的工作。最终这是正确的轨道。更新了你的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2012-06-16
  • 2014-06-26
  • 2015-11-11
  • 2019-01-06
  • 2011-07-02
相关资源
最近更新 更多