【问题标题】:Post data to an API using angularJS [duplicate]使用 angularJS 将数据发布到 API [重复]
【发布时间】:2016-09-20 14:54:05
【问题描述】:

我是 Angular 新手,想知道如何发布数据。

我有一个用 Angular 制作的控制器:

myApp.factory('employeeServices', ['$http', function ($http) {

    var factoryDefinitions = {
     moveToBench: function (employeeId) {
            var data = $.param({
                json: JSON.stringify({
                    "entityId": employeeId,
                    "nextStateId": myApp.state.bench
                })
            });
return $http.post(myApp.IndecommBaseUrl + '/Workflow',data).success(function (data) {
                return data;
            });
        }
    }

    return factoryDefinitions;
  }
]);

//Controller
myApp.controller('getEmployeesController', ['$scope', 'employeeServices', 'dataTable',  function ($scope, employeeServices, dataTable) {
    employeeServices.getEmployees().then(function (result) {
    $scope.moveToBench = function (id) {

            employeeServices.moveToBench(id);
        }

    });
}]);

我有一个 HTML 按钮:

<button class="btn  btn-success" ng-click="moveToBench(employee.employee.id)">Move To Bench</button>

按下按钮时,我可以看到:

 moveToBench: function (employeeId) {
            var data = $.param({
                json: JSON.stringify({
                    "entityId": employeeId,
                    "nextStateId": myApp.state.bench
                })

是正确的。但是当它到达 API 时,它的值为 NULL..

后端 API 控制器是:

// POST api/values
        [HttpPost]
        public void Post(int entityId, int nextStateId)
        {
            JObject jsonObject = JObject.Parse(System.IO.File.ReadAllText("Config.Json"));
            string jsonFile = jsonObject.GetValue("WorkfowJsonFileLocation").ToString();
            var nextState = _stateServices.Get(nextStateId);
            var handler = new WorkflowHandler(nextState, jsonFile, _entityServices, 1, _stateServices, _subStateServices, _appServices);
            handler.PerformAction(entityId);
        }

谁能帮我解决这个问题?

【问题讨论】:

    标签: angularjs post asp.net-core


    【解决方案1】:

    似乎在设置参数之前调用了 return 语句。请尝试内联版本:

    moveToBench: function (employeeId) {
         return $http.post(myApp.IndecommBaseUrl + '/Workflow', $.param({
                    json: JSON.stringify({
                            "entityId": employeeId,
                            "nextStateId": myApp.state.bench
                          })
                    }))
                .success(function (data) {
                    return data;
                });
            }
    

    【讨论】:

    • 它给了我一些语法错误...让我尝试修复它
    • 是的,抱歉,括号不平衡。我编辑了我的答案。
    • 我进行了更改。但我仍然得到 NULL 值。还弹出一个新错误:“加载资源失败:服务器响应状态为 500(内部服务器错误)”和“请求的资源上不存在‘Access-Control-Allow-Origin’标头。来源'@ 987654321@' 因此不允许访问。响应的 HTTP 状态代码为 500。"
    • CORS 已启用。所以它可能不是它的样子''
    • 嗯,我不是 ASP 专家,但是当服务器需要两个参数时,您确定要将参数作为 json 字符串发送吗?
    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2016-10-11
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多