javascript - $http GET URL 更改并查找错误的资源

标签 javascript angularjs single-page-application

我正在开发一个单页应用程序。我正在使用 Angularjs.v1.2.28。我正在使用此代码向后端发出 HTTP GET 请求。

return {
        getCategories : function(sessionid,terminalid,tableno,section){

            var req = {
                     method: 'GET',
                     url: Config.url+ "/menucategories",
                     params : {
                         'sessionid' : sessionid,
                         'terminalid' : terminalid, 
                         'tableno' : tableno,
                         'section' : section
                     }
            };

            return $http.get(req);
        },

我使用从 Controller 中的服务返回的 Promise 对象。

var categoryPromise = categoryService.getCategories(sessionid,terminalid,tableno,section);
    categoryPromise.then(function(payload){
        var categories =  payload.data;

        if(categories.status.code == "1"){
            if(Object.prototype.toString.call(categories) === '[object Array]') {
                $scope.categories = categories;
                categoryService.setCategories(categories);
                $scope.pax = tableService.getPax();
                $scope.tablechair = tableService.getChoseTableChair();
            }
        }
        else{
            $location.url("/login");
            $scope.errorMsg = categories.status.desc;
        }
    },function(errorPayload){
        $location.url("/login");
        $scope.errorMsg = "Server error while processing the request.Please contact system administrator";
    });

由于 URL 更改为附加了一些格式错误的字符的浏览器应用程序 URL,因此始终会调用 errorCallback。我给出的网址是

http://localhost:8080/CafexRestful/menucategories

但是,它会更改为下面的浏览器应用程序 URL

http://localhost:8080/CafexMobile/[object%20Object]

我一直在 Chrome 和 Firebug 中进行调试。我无法解决它。这可能是幕后发生的事情。相同的代码正在与另一个 Controller 和服务一起使用,我在其中获取不同的数据。如果您需要更多信息,请告诉我。谢谢。

最佳答案

AngularJS 中的

$http.get 需要一个 url 字符串。您应该使用 url 字符串而不是对象

使用 $http.get 函数:

  return {
            getCategories : function(){

                return $http.get("/menucategories"); // using $http.get function.
            },

使用$http函数。

return {
        getCategories : function(sessionid,terminalid,tableno,section){

            var req = {
                     method: 'GET',
                     url: Config.url+ "/menucategories",
                     params : {
                         'sessionid' : sessionid,
                         'terminalid' : terminalid, 
                         'tableno' : tableno,
                         'section' : section
                     }
            };

            return $http(req); //using $http function only.
        },

请参阅文档:https://docs.angularjs.org/api/ng/service/ $http

关于javascript - $http GET URL 更改并查找错误的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29179503/

相关文章:

javascript - 访问 iframe 之外的元素?

javascript - Pin It 按钮出现在错误的位置

html - Angular 动画 ng-cloak 不透明度

javascript - Jquery 事件无法与 AngularJS 一起正常工作

javascript - 无法使用pushstate和各种js路由器进行路由

javascript - 如何防止事件在 jquery 上完成触发?

javascript - 使用 Puppeteer 抓取 SPAN 数组中的文本以获取 div ID

即使在服务器端重写 URL 后,Angularjs HTML5 模式也不起作用

javascript - 当默认路由在 Angular 中具有参数时,无法导航到路由

javascript - AngularJS - 在 ng-click 中使用数据绑定(bind) {{}}