2012-08-30 43 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"