我在ASPX页面中有以下代码,用于从Web服务获取一些数据。我不能使用WCF所以我使用的是ASMX和.Net 3.5。但是,我得到的是黄色ASP.net错误页面,讨论将web.config错误标记设置为OFF。如果我从代码后面调用我的方法并将它响应到页面,我会得到一个我在JSON Viewer中查看的Json字符串,它解析得很好。我的问题是URL格式。我在这做错了什么。我找到的每个例子都使用webservice.asmx / Method格式。我还将协议添加到我的web.config
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
页面脚本:
$.ajax({
type: 'GET',
contentType: "application/json; charset=utf-8",
url: 'http://myserver/mywebservice.asmx/MyMethod',
dataType: 'jsondata',
success: function (msg) {
var table = "<table><tr><th>ID</th><th>Title</th></tr>"
for (var i = 0; i <= msg.length - 1; i++) {
var row = "<tr>";
row += "<td>" + msg[i].ID + "</td>";
row += "<td>" + msg[i].Title + "</td>";
row += "</tr>";
table += row;
}
table += "</table>";
$("#myDiv").html(table);
},
complete: function () {
alert("complete");
}
});
web服务:
<WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=True)> _
Public Function MyMethod() As String
'removed for shorter post
End Function
更新:所以使用Chrome中的开发工具我发现我的部分问题是服务器返回403 Forbidden错误。经过som调整后,我想出了一个部分解决方案,通过json格式化我的数据。但是,json格式的文本现在包装在XML中。 :-(
我还能弄清楚如何从我的json中获取XML。有什么想法吗?
答案 0 :(得分:0)
你应该
contentType: "application/json; charset=utf-8",
url: 'http://myserver/mywebservice.asmx/MyMethod',
dataType: 'jsondata',
类似于:
contentType: "application/json",
url: '/folderonmyserver/mywebservice.asmx/MyMethod',
dataType: 'json',
data: "{}", // needed for .Net not to blow up sometimes - or send real data
并且在您的成功中:给出您的.net版本参考msg.d(或者有一个用于隔离.Net版本的翻译)
success: function (msg) {
var mydata = msg.d;
var table = "<table><tr><th>ID</th><th>Title</th></tr>"
for (var i = 0; i <= mydata.length - 1; i++) {