jquery - AJAX 到 Web 方法不返回 JSON

标签 jquery asp.net json webmethod

我正在使用 AJAX 从我的 js 文件调用 aspx 页面中的 Web 方法。我已将方法设置为[WebMethod],并且该页面继承自System.Web.Ui.Page 类。但它仍然没有将 JSON 格式返回给我调用的 ajax 函数。

这是 js 文件中的 AJAX 调用:

         $.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;
        }

    }
}

当我在 Firefox 浏览器中按 F12 并检查网络调用中的请求/响应时,我根本看不到 JSON 选项卡。相反,我看到的是 HTML 选项卡。

我需要专门设置任何响应 header 吗?我到底错过了什么?

编辑:找到解决方案。最终,有效的是使用回调函数作为成功方法的 $.getJSON() 调用,下面是网页中的代码

        result = "...";
        Response.Clear();
        Response.ContentType = "application/json";
        Response.Write(result);
        Response.Flush();
        Response.End();

感谢大家提出的宝贵建议。

最佳答案

试试这个

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string CustomOrderService(string id)
        {
            string result;
            // code logic which sets the result value
            result="some value";

            return result;
        }

关于jquery - AJAX 到 Web 方法不返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17423406/

相关文章:

sql-server - 如何防止 FOR JSON PATH 转义查询结果?

jquery - 汉堡包图标 Bootstrap 的临时激活边框颜色

jquery - Canvas 外菜单未在 iOS 浏览器中显示

javascript - 如何在angularjs中对不同的json数据使用通用服务?

java - 反序列化时动态绑定(bind)JsonProperty

javascript - Null Page_Validators 在触发 asp 按钮 onclick 时导致错误

javascript - 清除/重新初始化 Highchart

jquery-ui - jQuery 阻止 UI 异常

c# - 来自类结构的类使用细节

asp.net - Redis 是适合公司警报消息系统的消息系统吗?