0
我在我的ASPX页面中有下面的代码来从web服务获取一些数据。我不能使用WCF,所以我使用ASMX和.Net 3.5。但是,我找回的是黄色的ASP.net错误页面,它将web.config错误标签设置为OFF。如果我从后面的代码调用我的方法并响应,将它写入页面,我得到一个JSON字符串,这是我在JSON查看器中查看的,它解析得很好。我的问题是URL格式。我在这里做错了什么。我找到的每个示例都使用webservice.asmx/Method格式。我还添加了协议,我的web.configAjax Webservice调用
<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");
}
});
的Webservice:
<WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=True)> _
Public Function MyMethod() As String
'removed for shorter post
End Function
UPDATE:因此,使用开发者工具在Chrome中我发现,我的问题的一部分是服务器返回403 Forbidden错误。在调整了som之后,我提出了一个部分解决方案,它使我用json格式化数据。但是,那个json格式的文本现在被包装在XML中。 :-(
我至今尚未能弄清楚如何获得XML我的JSON的任何想法
谢谢你的回答,但我不确定我是否按照你的说法行事。与我有什么和你有什么不同是删除charset = utf-8并将jsondata更改为json,对吧?如果是这样,这仍然不起作用。 –
,并删除网址的第一部分,以仅引用网页上的相对位置(来自您的网站)的位置。 - 当然隔离.net产生的msg.d对象。 –
而且,您必须在.Net 3.5 web.config中有一些额外的设置才能使其工作 - 在Google上搜索或在SO –