Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用$http post获取404 csMgmtApp.controller('launchedController',['$scope','$http','$document','$resource',函数($scope,$http,$document,$resource){ $scope.clientResult={}; $scope.data={}; $document.ready(函数(){ var query_string={}; var query=window.location.search.substring(1); var vars=query.split(&); 对于(变量i=0;i_Javascript_Angularjs_Ajax_Api - Fatal编程技术网

Javascript 使用$http post获取404 csMgmtApp.controller('launchedController',['$scope','$http','$document','$resource',函数($scope,$http,$document,$resource){ $scope.clientResult={}; $scope.data={}; $document.ready(函数(){ var query_string={}; var query=window.location.search.substring(1); var vars=query.split(&); 对于(变量i=0;i

Javascript 使用$http post获取404 csMgmtApp.controller('launchedController',['$scope','$http','$document','$resource',函数($scope,$http,$document,$resource){ $scope.clientResult={}; $scope.data={}; $document.ready(函数(){ var query_string={}; var query=window.location.search.substring(1); var vars=query.split(&); 对于(变量i=0;i,javascript,angularjs,ajax,api,Javascript,Angularjs,Ajax,Api,当我尝试te$http“POST”时,上面的代码给了我一个404 当我使用console.log($scope.clientResult.resource\u server\u base\u uri)时,我会得到:“https%3a%2f%2fapi-c7.incontact.com%2finContactAPI%2f” 但是,我得到了一个404,当我查看开发人员工具时,我看到它正试图发布到:”http://localhost:63342/Call_cntr/client/https%3a%2f

当我尝试te$http“POST”时,上面的代码给了我一个404

当我使用console.log($scope.clientResult.resource\u server\u base\u uri)时,我会得到:“https%3a%2f%2fapi-c7.incontact.com%2finContactAPI%2f”

但是,我得到了一个404,当我查看开发人员工具时,我看到它正试图发布到:
”http://localhost:63342/Call_cntr/client/https%3a%2f%2fapi-c7.incontact.com%2incontactAPI%2fservices/v6.0/agent sessions“

我开始认为它失败了,因为“://localhost…”被“预加”到了基uri。。。不知道为什么会这样。我觉得我提供了inContact API文档中提到的所有内容。也许是我从AJAX到$http的角度转换

任何帮助,非常感谢,我被困住了

拥有API身份验证令牌后,可以使用此令牌为用于获取令牌的凭据的代理创建代理会话。这是通过请求{cluster}.incontact.com/inContactAPI/services/v6.0/agent-sessions方法来完成的,并提供一个“站点ID”或一个将发送给代理的电话号码

根据文档:

尝试

csMgmtApp.controller('launchedController', ['$scope', '$http', '$document', '$resource', function ($scope, $http, $document, $resource) {

    $scope.clientResult = {};
    $scope.data = {};

    $document.ready(function () {
        var query_string = {};
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            query_string[pair[0]] = pair[1];
        }
        if (typeof(query_string.access_token) != "undefined") {
            var result = {};
            result.state = query_string.state;
            result.scope = query_string.scope;
            result.access_token = query_string.access_token;
            result.expires_in = query_string.expires_in;
            result.resource_server_base_uri = query_string.resource_server_base_uri;
            result.token_type = query_string.token_type;
        }

        $scope.clientResult = result;

    });

    console.log($scope.clientResult);

        $scope.startSessionPayload = {
            'stationPhoneNumber': '5555555555',
            'inactivityTimeout': '0',
            'inactivityForceLogout': 'false'
        };

    $http({
        'url': $scope.clientResult.resource_server_base_uri  + 'services/v6.0/agent-sessions',
        'method': 'POST',
        'headers':{'Authorization': 'bearer ' + $scope.clientResult.access_token,'content-Type': 'application/json'},
        'data': JSON.stringify($scope.startSessionPayload)
    }).success(function(data, status, headers, config) {
        $scope.data = data;
        console.log('data', $scope.data)
    }).error(function(data, status, headers, config) {
        $scope.status = status;
    });

}]);
我相信
/
实际上是一个分隔符,但是
%2f
变成了一个普通字符,它只是表示url中的
/
字符


unescape()
已弃用;尝试
decodeURIComponent()

出于测试目的,是否可以对url进行硬编码,以确保它指向inContact服务器,而不是使用
$scope.clientResult.resource\u server\u base\u uri
(它似乎错误地指向本地主机)?您是在浏览器中输入
http%3a%2f%2stackoverflow.com/
还是
http://stackoverflow.com/
?您应该发布的正确URL是什么?嘿,伙计们,我将尝试所有这些解决方案。我会用正确的url更新我的问题。我会使用,但http%3是我从API得到的。有没有办法解析它?在浏览器中不是%3=:,和%f=/,太棒了。我“我现在有进展了,得到了一个未经授权的401计划,但这是一个新问题。联合国环境规划署起了作用。。尽管如此,我的编辑还是试图告诉我它被贬值了..这解决了401问题,将unescape应用到auth_令牌上。。如果你不介意教某人,为什么它从API返回了错误的格式,为什么它必须使用unescape?如果其他人使用此decodeURI可以代替unescape。我希望我首先建议
decodeURIComponent()
。我很高兴你把问题解决了。
result.resource_server_base_uri = unescape(query_string.resource_server_base_uri);