我开始将事情转移到[WebMethod]
但开始遇到麻烦,并决定我需要做更多关于如何正确使用它们的研究。
我在$(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;
}
我从来没有得到“请工作”。我得到“undefined undefined”我能够在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" ...
答案 0 :(得分: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"" }";
}
并测试。 (以上将有效)
答案 1 :(得分:1)
.d参数中的服务返回响应尝试以下
msg.d.name