我的问题与角柱有关。我与客户发送的数据总是空的 - 空值。但是Fiddler没有问题。
WebApi是错误的 user.KullaniciAdi ='user.KullaniciAdi'引发了类型' System.NullReferenceException '的异常
Apache Cordova移动客户端 - 空数据 Fiddler - 完整数据
表是用户。
我的代理用户表:
namespace DiaryRestfulService.Models.ORM
{
public class UserSurrogate
{
public int ID { get; set; }
public string Username{ get; set; }
public string Password{ get; set; }
}
}
我的基本用户类:业务层
public UserSurrogate InsertUser(UserSurrogate user)
{
Users kullanici = new Users()
{
Username= user.Username,
Password = user.Password
};
db.Users.Add(kullanici);
db.SaveChanges();
return user;
}
我的用户控制器:
[HttpPost]
public IHttpActionResult KullaniciEkle([FromBody] UserSurrogate user)
{
try
{
userornek.InsertUser(user);
return Json("succ");
}
catch (Exception)
{
return NotFound();
}
}
而且,我的客户;
<script>
var app = angular.module('a', []);
app.controller('b', function ($scope, $http, $httpParamSerializerJQLike) {
$scope.Ekle = function () {
var data =({ Username: $scope.username, Password: $scope.password });
console.log(data);
var url = {
method: 'POST',
url: 'http://localhost:51975/api/User/KullaniciEkle',
headers: {
'Content-Type': 'application/json; charset = utf-8'
}
};
$http(url, "'" + $httpParamSerializerJQLike(data)+"'").then(function (responce) {
alert("Oldu");
}, function (responce) {
console.log(responce.headers);
console.log(responce.data);
console.log(responce.status);
console.log(responce.config);
alert("Olmadı");
});
}
});
</script>
我在哪里弄错了? 请帮帮我。
答案 0 :(得分:0)
我已经尝试了所有这些,没有任何改变。 (JSON.stringify包括)
<script>
var app = angular.module('a', []);
app.controller('b', function ($scope, $http) {
$scope.Ekle = function () {
var data =({ KullaniciAdi: $scope.username, Sifre: $scope.password });
console.log(data);
var url = {
method: 'POST',
url: 'http://localhost:51975/api/User/KullaniciEkle',
headers: {
'Content-Type': 'application/json; charset = utf-8'
}
};
$http(url,data).then(function (responce) {
alert("Oldu");
}, function (responce) {
console.log(responce.headers);
console.log(responce.data);
console.log(responce.status);
console.log(responce.config);
alert("Olmadı");
});
}
});
</script>
答案 1 :(得分:0)
对我来说,看起来你以不正确的方式添加了身体数据。 尝试更改$ http设置并在数据部分中定义正文
$http({
method: 'POST',
url: 'http://localhost:51975/api/User/KullaniciEkle',
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
},
data: JSON.stringify(data),
}).
success(function (data) {
alert("Oldu");
}).
error(function (message, status) {
console.log(message);
});
答案 2 :(得分:0)
我做到了! 谢谢你的一切。 运行代码:
https://docs.microsoft.com/en-us/aspnet/core/security/cors
我的控制器:
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class UserController : ApiController
我的客户发布表单脚本:
<script>
var app = angular.module('a', []);
app.controller('b', function ($scope, $http) {
$scope.Ekle = function () {
var veri = { KullaniciAdi: 'test', Sifre: 'test2' };
var adres = 'http://localhost:51975/api/User/KullaniciEkle';
var req = {
method: 'POST',
url: adres,
data: JSON.stringify(veri),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},}
$http(req).then(function () {
alert("oldu");
}, function () {
console.log(veri);
alert("olmadı");
});
}
});
</script>