私は完全なCRUD操作のためにjsGridを使用していますが、新しいレコードを追加すると、postメソッドは何とか自分のフィールドを文字列に変換してからAPIに転送します。私のAPIは、文字列、数字、またはboolのいずれであっても、すべてのフィールドを文字列として受け取ります。ここでinsertItemのjsGridの問題
は私のInsertItem関数です:
console.log("data before post: " + JSON.stringify(item));
insertItem: function (item) {
var d = $.Deferred();
$.ajax({
type: "POST",
url: "https://myserver...",
data: item,
dataType: "json",
}).done(function (response) {
console.log("done: " + JSON.stringify(response));
d.resolve(response);
}).fail(function(msg) {
console.log("fail" + msg);
d.reject();
});
}
私は$アヤックス前にアイテムオブジェクトをCONSOLE.LOG場合、それは適切に数値フィールドを示します。
data before post: {"question":"My Question","value":45,"timeout":10, "isActive":true }
しかし、行われた機能にconsole.logで、次のようにJSONを見て、これはそれがサーバー上で受信されている正確にどのようにもある:例えば
done: {"question":"My Question","value":"45","timeout":"10", "isActive":"true"}
私は郵便配達を使用している場合と、適切なjsonオブジェクトを投稿すると、すべて正常であり、データ型は必要なので、私のAPIには誤りがありません。また、apiレスポンスはjsonオブジェクトを受信したときにそれを返します。
何とかjsgridがAPIに投稿する前に、すべてのプロパティ値を文字列に変換しています。これは本当に面倒です。
更新: 私は、データを交換してみた場合でも:77がまだ "77" としての私のAPIによって受信され
data: {"question":"myquestio77", "value": 77}
:でアイテムを。