【问题标题】:AngularJS - Error Body Request POSTAngularJS - 错误正文请求 POST
【发布时间】:2016-04-11 19:01:17
【问题描述】:

我是 AngularJs 的新手,我需要在具有枚举形式的服务器上进行发布请求。我在 JS 中是这样操作的:

function completeTaskAction2($scope, $http, Base64) {
$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode('kermit' + ':' + 'kermit');
$http.get("http://localhost:8080/activiti-rest/service/runtime/tasks")
    .then(function (response, data, status, headers, config) {
        var ids = response.data.data[0].id;

        $scope.formData2 = {
            taskId: ids,
            properties: [{
                    id: 'requestApproval',
                    value: ''
            }
            ]
        }
    });
$scope.submitForm2 = function () {

    $http({
        method: 'POST',
        url: "http://localhost:8080/activiti-rest/service/form/form-data",
        data: angular.toJson($scope.formData2),
        headers: {
            'Authorization': 'Basic ' + Base64.encode('kermit' + ':' + 'kermit'),
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        }
    }).success(function (data) {

        console.log("OK", data);
    }).error(function (data) {

        console.log("Error Posting data...");
        console.log(data);
        console.log($scope.submitForm2);
    });
};

};

在 html 中:

 <div ng-controller="completeTaskAction2">
                        <div ng-repeat="x in names">
                            {{ x.name }}*

                            <form ng-submit="submitForm2()">
                                <a ng-if="x.type=='enum'">
                                    <select ng-model="formData2.properties[0].value" ng-options="y.name for y in x.enumValues " placeholder="{{ x.name[0] }}"> {{ x.name }} </select>
                                </a>
                                <br>

                                <button type="submit" class="btn btn-success btn-lg btn-block">
                                    <span class="glyphicon glyphicon-flash"></span> Submit Enum!
                                </button>
                        </div>


                    </div>
                    </form>

但我有这个错误:

无法读取 JSON:无法反序列化实例……

响应正文是:

{"taskId":"67762","properties":[{"id":"requestApproval","value":{"id":"true","name":"Yes"}}]}

我只需要将这个发送到服务器:

**{"taskId":"67762","properties":[{"id":"requestApproval","value":"true"}}]**

我该怎么做?

【问题讨论】:

  • 你可以试试data: $scope.formData2而不是data: angular.toJson($scope.formData2)
  • @Nora 谢谢你的回复!但同样的错误和结果...... :(

标签: javascript angularjs forms post activiti


【解决方案1】:

你的 ng-options 应该是这样的:

ng-options="y.id as y.name for y in x.enumValues"

这会将y 的ID 绑定到模型值而不是整个y 对象。

【讨论】:

  • 谢谢!像魅力一样工作!我终于解决了我的问题! :D
【解决方案2】:

而不是这个:

<select ng-model="formData2.properties[0].value" ng-options="y.name for y in x.enumValues " placeholder="{{ x.name[0] }}"> {{ x.name }} </select>

你应该像这样使用 ng-selected:

<select ng-model="formData2.properties[0].value" ng-options="y.name for y in x.enumValues " ng-selected="x.name[0]"></select> 

这应该可以解决您的问题,但很遗憾,我现在无法对此进行测试。让我知道这是否解决了您的问题:)

【讨论】:

  • 很遗憾没用。相同的错误和结果... :( 还是谢谢
猜你喜欢
  • 1970-01-01
  • 2021-12-05
  • 2017-06-29
  • 2019-02-05
  • 2017-09-09
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多