2011-05-13 68 views
0

我的Visual Studio解決方案中有兩個項目:MyApp.WebService和MyApp.WebUI。在不同的項目中調用.svc的AJAX函數

我有一個觀點頁面在/Views/Home/Index.aspx我的WebUI中的項目,使這一AJAX調用:

$.ajax({ 
    type: "GET", 
    url: "MyService.svc/HelloWorld", 
    data: null, 
    processData: true, 
    contentType: "application/json", 
    dataType: "json", 
    cache: false, 
    success: function (data) { 
     alert(data.d); 
    } 
}); 

我有我的web項目的根.svc文件,命名MyService.svc,其中包含此功能:

[OperationContract] 
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
public string HelloWorld() 
{ 
    return "Hello, world!"; 
} 

我得到一個錯誤說,它不能找到我打電話的URL位置。我懷疑它與另一個項目中的.svc文件有關。有什麼我需要做的來打電話嗎?

+0

你可以在瀏覽器中導航到該網址或根SVC網址嗎? – 2011-05-13 01:02:24

回答

1

如果您使用兩個不同的項目,那麼項目將託管在不同的端口(VS的默認值)或不同的虛擬目錄中。無論哪種方式,從一個項目到另一個項目的請求都不起作用。如果你在不同的端口上有兩個項目(例如,MyApp.WebService在6789和MyApp.WebUI在7890),那麼從/Views/Home/Index.aspx(實際上是http://machine-name:7890/Views/Home/Index.aspx)到MyService.svc/HelloWorld的調用將是製作爲http://machine-name:7890 /MyService.svc/HelloWorld,雖然它應該已經制作成http://machine-name:6789 /MyService.svc.HelloWorld。在打開頁面時運行Fiddler將顯示呼叫的地址。另外,如果您在VS上右鍵單擊MyService.svc並選擇「在瀏覽器中查看」,它會顯示您撥打電話的確切地址

相關問題