2012-08-30 45 views
1

我有获取与AJAX调用在这里拉开帷幕网络方法是我的Web方法:Web服务调用,没有发现服务

[WebMethod(EnableSession=true)] 
public void ProcessAddress(Dictionary<string, string> Header, bool AddrValues) 
{ 

    _service.ProcessNoMatchModal(Header, AddrValues); 
} 

与这叫做:

$.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "../Services/Address.asmx/ProcessAddress", 
     data: JSON.stringify(data), 
     dataType: "json", 
     success: function(data) { 
      alert("success"); 
     }, 
     error: function() { 
      alert("error"); 
     }, 
     complete: function() { }, 
     asynch: false 
    }); 

更重要的是混乱的是我有都指向相同的代码源和第一本服务的工作原理两个虚拟目录和可用,但第二个它不工作,我的萤火看到一个404

任何线索/建议将是有益

回答

0

From Here:

  1. 的方法必须是静态的
  2. 的方法需要与[的WebMethod()
  3. 的方法需要被装饰装饰[ScriptMethod()]如果你想对它做一个ASP.NET AJAX回调
0

因为这是一个404 http错误,我会责怪你在URL设置中的相对路径引用(使用双点)。

从您的第一个位置调用Web服务时使用正确的路径,从第二个目标位置错误路径...尝试使用Fiddler或Chrome开发人员工具查看您正在调用的实际路径,以查看我是否正确。

如果从不同深度的虚拟目录调用这个函数,你可能会更好过没有一个相对路径引用,但在根目录开始.. 下面的一个应该工作我猜:

url: "Services/Address.asmx/ProcessAddress" 
url: document.location.hostname + "/Services/Address.asmx/ProcessAddress"