Asp.net Ajax Web服务调用

Asp.net Ajax Web服务调用,asp.net,ajax,web-services,cross-domain,Asp.net,Ajax,Web Services,Cross Domain,我在我的ASPX页面中有以下代码,可以从Web服务获取一些数据。我不能使用WCF,所以我使用的是ASMX和.NET3.5。但是,我得到的反馈是黄色的ASP.net错误页面,其中谈到将web.config错误标记设置为OFF。如果我从代码隐藏和response.write调用我的方法,我会得到一个Json字符串,我已经在Json查看器中查看过了,它解析得很好。我这里的问题是URL格式。我做错了什么。我发现的每个示例都使用webservice.asmx/Method格式。我还将协议添加到了我的web

我在我的ASPX页面中有以下代码,可以从Web服务获取一些数据。我不能使用WCF,所以我使用的是ASMX和.NET3.5。但是,我得到的反馈是黄色的ASP.net错误页面,其中谈到将web.config错误标记设置为OFF。如果我从代码隐藏和response.write调用我的方法,我会得到一个Json字符串,我已经在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");
        }
    });
$.ajax({
键入:“GET”,
contentType:“应用程序/json;字符集=utf-8”,
网址:'http://myserver/mywebservice.asmx/MyMethod',
数据类型:“jsondata”,
成功:功能(msg){
var table=“IDTitle”
对于(var i=0;i您应该

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的msg.d)

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++) {
success:函数(msg){
var mydata=msg.d;
var table=“IDTitle”

对于(var i=0;我感谢您的回答,但我不确定我是否遵守了您的说法。我和您的不同之处在于删除charset=utf-8并将jsondata更改为json,对吗?如果是这样,这仍然不起作用。删除url的第一部分,仅引用相对的(从您的站点)从页面的位置。-当然要隔离.net生成的msg.d对象。而且,你必须在.net 3.5 web.config中进行一些附加设置才能使其工作-谷歌搜索这些内容或在SOwell上搜索。除了成功功能更改外,我不能更改URL,因为这不是本地的。我的web服务运行在完全不同的服务器上。hmm cross域…尝试设置
数据类型:“jsonp”
=小写在这里很重要
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++) {