【问题标题】:Having some trouble making a simple ajax call在进行简单的 ajax 调用时遇到一些麻烦
【发布时间】:2013-08-22 15:05:20
【问题描述】:

我开始将东西切换到[WebMethod]s,但开始遇到麻烦,并决定我需要对如何正确使用它们进行更多研究。

我将以下内容放入$(document).ready()

                $.ajax({
                type: "POST",
                data: "{}",
                url: "http://localhost:3859/Default.aspx/ajxTest",
                dataType: "json",
                success: function (msg, status) {
                    alert(msg.name + " " + msg.value);
                },
                error: function (xhr, status, error) {
                    var somethingDarkside; //only to put a breakpoint in.
                    alert(xhr.statusText);

                }
            });

我的[WebMethod]

    [WebMethod]
    public static string ajxTest()
    {
        JavaScriptSerializer ser = new JavaScriptSerializer();
        DummyString dum = new DummyString("Please","Work");
        string jsonString = ser.Serialize(dum);
        return jsonString;
    }

我从来没有得到“请工作”。我得到“未定义的未定义”,我可以在 VS 中调试并且调用进入[WebMethod],返回字符串对于 JSON 来说看起来是正确的,但我还没有能够成功调用它。我有解析错误,传输错误。一切都是不一致的,但从来没有什么是对的。我今天有多达 47 个不同的博客、SO 帖子和 google 组标签,我无法完全破解它。

xhr.statusText 状态与发布的一样。我收到status 解析错误。我迷路了。

提前致谢。

编辑:jQuery 1.9.1

EDIT2:DummyString 对象

        public class DummyString
    {
        public string name { get; set; }
        public string value { get; set; }

        public DummyString(string n, string v)
        {
            name = n;
            value = v;
        }
    }

编辑 3:我也有 <asp:ScriptManager EnablePageMethods="true" ...

【问题讨论】:

  • 结果字符串的内容究竟是什么
  • 你在浏览器中调试过吗?
  • 浏览器调试是我得到status解析错误的原因。 DummyString 就像字典一样工作。它返回一个name:please, value:work 事物。

标签: c# asp.net jquery webmethod


【解决方案1】:

简化为:

$.ajax({
    type: "POST",
    url: "Default.aspx/ajxTest",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert('success');
    },
    error: function (data) {
        alert('fail');
    }
});

[WebMethod]
public static string ajxTest()
{
    return @"{ ""hello"":""hola"" }";
}

和测试。 (以上都行)

【讨论】:

  • 我因此失败了。这也是我开始的地方,尝试最简单的方法。我今天过得很糟糕,没那么难。
  • 尝试 GET。 (因为你不是真的在发帖)
  • 也是失败的。我最终会发布。我正在努力在那里建立自己的道路。这是一个两个参数调用,当它是它自己的 .aspx 页面时工作得很好。
  • 从 url 中删除 localhost(请参阅更新的答案)。您遇到了哪些 JavaScript 错误?
  • 您对 contentType 的编辑修复了它……或者至少我收到了 success 警报。
【解决方案2】:

.d 参数中的服务返回响应尝试跟随

msg.d.name

【讨论】:

  • 我正在研究@Sam Leach 的方法。我已经从中取出了返回数据。我现在无法完成通话。顺便说一句,我读过并尝试过。
猜你喜欢
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
相关资源
最近更新 更多