[英]AJAX - Sending knockout observables as JSON object to server using AJAX
我試圖以JSON對象的形式發送綁定到特定observable的表單字段到我的服務器,但我在服務器端收到空的JSON字符串。 我不想發送整個視圖模型來完成此任務。 這是我到目前為止的javascript:
$(document).ready(function(){
ko.applyBindings(new AddSubjectKo());
});
function AddSubjectKo()
{
var self=this;
self.name = ko.observable();
self.quiz = ko.observable();
self.ass = ko.observable();
self.oht = ko.observable();
self.sess = ko.observable();
self.ese = ko.observable();
self.SubjectAdded=function()
{
$.ajax({
url: "api/courses",
type: "post",
data: formToJSON(),
contentType: "application/json",
success: function(data){
alert("success");
},
error:function(jqXHR, textStatus, errorThrown) {
alert("failure");
}
});
function formToJSON() {
alert(self.name());
return JSON.stringify({
"name": self.name,
"quiz": self.quiz,
"ass": self.ass,
"oht": self.oht,
"sess": self.sess,
"ese": self.ese,
});
}
}
//$("#alert").slideDown();
}
您可以使用ko.toJSON
函數:
function AddSubjectKo()
{
var self=this;
self.name = ko.observable();
self.quiz = ko.observable();
self.ass = ko.observable();
self.oht = ko.observable();
self.sess = ko.observable();
self.ese = ko.observable();
self.SubjectAdded=function()
{
$.ajax({
url: "api/courses",
type: "post",
data: ko.toJSON(self),
contentType: "application/json",
success: function(data){
alert("success");
},
error:function(jqXHR, textStatus, errorThrown) {
alert("failure");
}
});
}
只需使用調用observable(添加括號)來獲取observable中的值:
$(document).ready(function(){
ko.applyBindings(new AddSubjectKo());
});
function AddSubjectKo()
{
var self=this;
self.name = ko.observable();
self.quiz = ko.observable();
self.ass = ko.observable();
self.oht = ko.observable();
self.sess = ko.observable();
self.ese = ko.observable();
self.SubjectAdded=function()
{
$.ajax({
url: "api/courses",
type: "post",
data: formToJSON(),
contentType: "application/json",
success: function(data){
alert("success");
},
error:function(jqXHR, textStatus, errorThrown) {
alert("failure");
}
});
function formToJSON() {
alert(self.name());
return JSON.stringify({
"name": self.name(),
"quiz": self.quiz(),
"ass": self.ass(),
"oht": self.oht(),
"sess": self.sess(),
"ese": self.ese(),
});
}
}
//$("#alert").slideDown();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.