AJAX를 사용하여 js 파일에서 aspx 페이지로 웹 메서드를 호출하고 있습니다. 메소드를 [WebMethod]로 설정했고 페이지는 System.Web.Ui.Page 클래스에서 상속받습니다. 여전히 JSON 형식을 호출하는 ajax 함수에 반환하지 않습니다. 웹 방법 여기AJAX에서 JSON을 반환하지 않는 웹 메서드
$.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을 눌러 네트워크 호출에서 요청/응답을 확인 여기
은 JS 파일에있는 AJAX 호출입니다 JSON 탭이 전혀 표시되지 않습니다. 대신 HTML 탭이 표시됩니다.특별히 응답 헤더를 설정해야합니까? 여기 정확히 내가 뭘 놓치고 있니?
EDIT : 해결책을 찾았습니다. 궁극적으로, 어떤 일을하는 것은 성공의 방법으로 콜백 함수와 $ .getJSON() 호출은 아래
result = "...";
Response.Clear();
Response.ContentType = "application/json";
Response.Write(result);
Response.Flush();
Response.End();
모두 감사합니다 여러분의 소중한 제안에 대한 웹 페이지의 코드입니다.
이return new JavaScriptSerializer().Serialize(result);
서버에서'Content-type : application/json' 헤더를 설정해야합니다. 또한 적절한 JSON 문자열을 반환해야합니다. –