Метод AJAX to web не возвращает JSON
Я вызываю веб-метод на странице aspx из моего файла JS, используя AJAX. Я установил метод как [WebMethod], и страница наследуется от класса System.Web.Ui.Page. Тем не менее он не возвращает формат JSON моей вызывающей функции ajax.
Вот вызов AJAX в файле js:
$.ajax({
type: "POST",
url: "/WebServiceUtility.aspx/CustomOrderService",
data: "{'id': '2'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (message) {
ShowPopup(message);
}
});
function ShowPopup(result) {
if (result.d != "") {
request=result.d;
}
}
А вот и веб-метод:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web.Services;
namespace SalesDesk.Global
{
public partial class WebServiceUtility : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public string CustomOrderService(string id)
{
string result;
// code logic which sets the result value
result="some value";
return result;
}
}
}
Когда я нажимаю F12 в браузере Firefox и проверяю запрос / ответ в сетевых вызовах, я вообще не вижу вкладку JSON. Вместо этого я вижу вкладку HTML.
Нужно ли специально устанавливать заголовки ответа? Что именно мне здесь не хватает?
РЕДАКТИРОВАТЬ: нашел решение. В конечном итоге, то, что сработало, это вызов $ .getJSON () с функцией обратного вызова в качестве метода успеха, а ниже приведен код на веб-странице
result = "...";
Response.Clear();
Response.ContentType = "application/json";
Response.Write(result);
Response.Flush();
Response.End();
Спасибо всем за ваши ценные предложения.