【问题标题】:Post Json data from Angularjs to MVC controller将 Json 数据从 Angularjs 发布到 MVC 控制器
【发布时间】:2018-12-01 22:44:39
【问题描述】:

当我将 JSON 数据从 AngularJS 传递到 MVC 时。我遇到了错误。

Http 请求配置 url 必须是字符串或 $sce 可信对象。收到:{"method":"POST","url":"Home/SavePDDetails","datatype":"json","data":{"PD":{"Name":"qqq","Address" :"www"}}}

MVC 代码:

[HttpPost]
public JsonResult SavePDDetails(PDDetailsDTO PD)
{
    new PDDetailsDAL().SavePDDetails(PD);
    return Json(new { Success = true, Message = "Success" });
}

AngularJS 代码

$scope.Click = function() {
  console.log('clicked');

  $http.post({
    method: 'POST',
    url: 'Home/SavePDDetails',
    datatype: "json",
    data: {
      PD: $scope.PD
    }
  }).success(function(response) {
      console.log('success');
      console.log(response);
  }).error(function(response) {
      console.log('error');
      console.log(response);
  });
}

【问题讨论】:

标签: angularjs json asp.net-mvc-5


【解决方案1】:

如果 data 和 url 作为 config 对象的属性传递,请不要使用 $http.post 方法。只需使用$http

  ̶$̶h̶t̶t̶p̶.̶p̶o̶s̶t̶(̶{̶
  $http({
    method: 'POST',
    url: 'Home/SavePDDetails',
    ̶d̶a̶t̶a̶t̶y̶p̶e̶:̶ ̶"̶j̶s̶o̶n̶"̶,̶
    data: {
      PD: $scope.PD
    }
  })

没有必要对数据进行字符串化,$http Service 会自动执行此操作。

【讨论】:

    【解决方案2】:

    在你的函数中尝试如下。

    使用 JSON.stringify() 来包装你的 json

    var parameter = JSON.stringify({PD: $scope.PD});
    
    $http.post('Home/SavePDDetails', parameter).
    success(function(data, status, headers, config) {
        // this callback will be called asynchronously
        // when the response is available
        console.log(data);
    }).
    error(function(data, status, headers, config) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2013-01-11
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多