jQuery AJAX - вызов для публикации данных на странице ASP.Net (не Get, а POST).
У меня есть следующий jQuery AJAX-вызов на страницу ASP.Net.
$.ajax({
async: true,
type: "POST",
url: "DocSummaryDataAsync.aspx", //"DocSummary.aspx/GetSummaryByProgramCount",
contentType: "application/json; charset=utf-8",
data: kendo.stringify({ vendorId: supplierId, businessUnit: busUnit, productSegmentId: prodSegmentId, programId: progId, productManagerId: prodManagerId, companyIds: compIds, expired: exp.toString(), requestType: 'TotalCount' }),
success: function (msg) {
// alert('in success of getcount');
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
// alert('in failure of getcount');
}
});
Когда я пытаюсь извлечь из объекта запроса опубликованные данные, он не отображается. Мой код страницы aspx, как показано ниже. Я отправляю на страницу все опубликованные данные в формате Json, но это не так.не отображается в коде позади страницы.Есть ли какие-то дополнительные настройки в jQuery ajax call, которые мне не хватает?
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "application/json";
string requestType = Request.Params["requestType"];
//populate variables from posted data
string vendorId = Request.Params["vendorId"];
string businessUnit = Request.Params["businessUnit"];
string productSegmentId = Request.Params["productSegmentId"];
string commitmentProgramId = Request.Params["programId"];
string productManagerId = Request.Params["productManagerId"];
string companyIds = Request.Params["companyIds"];
string expired = Request.Params["expired"];
}
ОБНОВЛЕНИЕ 1: Стивен'Ответ s - лучший подход к этому, особенно подход, который делает ProcessRequest. Однако я обнаружил небольшую хитрость, которая позволит размещать данные в ASP.Net обычным традиционным способом, например, как Request ["VendorID»] и т. д. Чтобы включить такую публикацию данных из любого запроса jQuery ajax, вам просто нужно убедиться, что к вашему вызову jQuery ajax применяются следующие 2 пункта:
Тип содержимого должен быть исключен из вашего вызова jQuery ajax Или если вы хотите включить его, то он долженне быть установлен на "Применение / JSON; кодировка = UTF-8" но "применение / х-WWW-форм-urlencoded; кодировка = UTF-8", Тип содержимого, согласно моему пониманию, говорит странице ASP.Net тип отправляемых данных, а не тип ожидаемых данных страницы.Часть данных jQuery ajaxне должны содержать имена данных, заключенные в кавычки, Итак, данные: {"venorId ":"AD231" ,»businessUnit ":"123"} должен быть заменен данными: {vendorId: "AD231", BusinessUnit:»123"}. В этом примере имена данных являются vendorId и businessUnit, к которым можно получить доступ в коде позади вашего ASP.Net, используя обычный синтаксис ASP.Net, например Request ["VendorID»] и запрос ["businessUnit»].