0
我有一個KnockoutJS viewmodel我正在使用,並且發送一個JSON日期作爲GET請求中的一個參數給WebAPI顯然很困難。無法獲得ISO-8601 JSON DateTime以正確發送GET
我有以下發生在我的要求
var params = {
userId: currentUser,
startRange: ko.toJSON(self.selectedDate()),
endRange: ko.toJSON(self.selectedDate())
}
$.ajax({
type: "GET",
contentType: 'application/json; charset=utf-8',
cache: false,
dataType: 'json',
url: url,
data: params,
beforeSend: function (xhr, settings) {
sf.setModuleHeaders(xhr);
}
}).done(function(data) {
}).fail(function() {
}).always(function() {
});
在我的WebAPI控制器,開始和結束日期不斷想出空
public HttpResponseMessage GetViolationsInRange(int userId, DateTime? startRange, DateTime? endRange)
檢查的要求,這是它輸出
/API/Cert/GetViolationsInRange?userId=20&startRange=%222015-09-01T04%3A00%3A00.000Z%22&endRange=%222015-09-01T04%3A00%3A00.000Z%22
任何想法,爲什麼這種情況正在發生,爲什麼我一直被絆倒S'
編輯:看來,通過不使用jQuery的AJAX'數據'參數,只是將值附加到URL,它不會逃避JSON表示。有沒有一種乾淨的方式來做什麼jQuery沒有手動追加它們添加GET參數?
你爲什麼得到URL中的'%22'部分(轉義引號)?你嘗試刪除它們嗎? –
當GET發生時,它就是通過它來的。帶有「params」對象的$ .ajax轉義到此。我假設這就是爲什麼日期也是空的。 – dgarbacz
嗯,而不是假設它,我會嘗試手動與更期望的網址 - 然後,如果這有效(我希望它會),你可以改變AJAX以避免逃跑。 –