在groovy app

时间:2018-05-17 17:52:49

标签: angularjs rest http grails groovy

我正在开发这个应用程序,它将是一个前端消耗来自其他应用程序的数据,但首先,它会将凭据发布到已经在生产中运行的另一个应用程序,并且在接受凭据后,它应该重定向到该应用程序用户已登录。

这就是问题所在。我已经测试过将数据发送到其他应用程序数据正在接收

     params: [{"j_username":"username","j_password":"password","instance":"http:8080/TERA/authAuto"}:, action:authAuto, controller:login]
    username: null
    Prueba: null

我试图接受这一点,因为它一切都没有成功

request.JSON.j_username
params.j_username
params["j_username"]

params:实际上是由常规打印接收的params。

我现在添加我的angularJs代码

vm.login = function(){
    $http({
        method: 'POST',
        url: "http://t0002161750:8080/TERA/authAuto",
        data: {j_username: vm.user.username, j_password: vm.user.password, instance: "http://t0002161750:8080/TERA/authAuto"},
        headers:{
        'Content-Type': 'application/x-www-form-urlencoded;charset=utf8'
        }
    }).success(function(response){
        $window.location.href = "http://t0002161750:8080/TERA/";
        });
    }
}

我正在与其他应用在PC上运行的同伴进行此测试。

从概念上讲,我可能做错了。我知道通过在$ window.location.href = url + params中发送params会起作用,但我不希望凭证在URL中传播。我知道我可以对它们进行编码但是如果有可能的话,我们可以在放弃之前尝试别的东西

1 个答案:

答案 0 :(得分:0)

此处的问题是使用错误的Content-Type进行提交。服务器将在正文中查找POST-vars。适当的使用价值是:

Content-Type: application/json

(而不是application/x-www-form-urlencoded;charset=utf8