私はデータをポストするショートハンドバージョンを使用しようとしています。私の古い方法が働いた。なぜ新しい方法が働いていないのか分かりません。
私のコントローラでは、すべての値がNULLです。しかし、古い作業バージョンでは、彼らはうまく解析しました。
ワーキング:
$.ajax({
url: 'api/User/Register',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
EmailAddress: self.RegisterEmailAddress(),
Password: self.RegisterPassword(),
TimeZoneID: self.RegisterTimeZoneID(),
Firstname: self.RegisterFirstname(),
Surname: self.RegisterSurname()
}),
dataType: 'json'
}).done(function (data) {
alert(data);
});
に動作していない:
var registerdata = JSON.stringify({
EmailAddress: self.RegisterEmailAddress(),
Password: self.RegisterPassword(),
TimeZoneID: self.RegisterTimeZoneID(),
Firstname: self.RegisterFirstname(),
Surname: self.RegisterSurname()
});
var uri = 'api/User/Register';
$.post(uri, registerdata)
.done(function(data){
alert(data);
});
は、新しいバージョンと間違って何ですか? 注、私はポストとして、ヘッダが正しいデータがあります。私のコントローラで
{"EmailAddress":"[email protected]","Password":"password","TimeZoneID":"4","Firstname":"Test","Surname":"Users"}:
をAPIには、次のようになります。
[HttpPost]
public string Register(UserRegistrationRequestDto register)
{
var reply = _userService.Register(register);
return $"{reply.FriendlyMessage}";
}
そしてUserRegistrationRequestDtoは次のように定義されています
public class UserRegistrationRequestDto : BaseRequestDto
{
public string EmailAddress { get; set; }
public string Password { get; set; }
public int TimeZoneID { get; set; }
public string Firstname { get; set; }
public string Surname { get; set; }
}
なぜショートバージョンが動作していないのかわかりません。
注意、異なる呼び出しが
var logindata = JSON.stringify({
EmailAddress: self.LoginEmailAddress(),
Password: self.LoginPassword()
});
var uri = 'api/User/Login'
$.post(uri, logindata)
.done(function (data) {
alert(data);
});
を定義し、「動作しない」 –
は、あなたが戻って、それが動作しない理由のために取得エラーをチェックすることがありますか?私が見ることができる唯一の違いは、contentTypeヘッダーです。 –
"新しいバージョンでは何が間違っていますか?" contentTypeとdataTypeがありません。 –