2012-12-12 142 views
0

我有用.NET4 C#代碼編寫的REST服務,並且在幫助頁面中顯示以下URL以調用該服務。如何從JQuery調用C#Rest服務

http://myservice/ALWebService/{ASS} 

我不能爲我的生活讓我的jQuery AJAX調用到服務,雖然我沒有得到任何例外它總是在調用返回錯誤回來。

我用打電話的東西的代碼是:

function DoPost() { 
     $.ajax({ 
         cache: false, 
         url: ' http://myservice/', 
         dataType: "JSON", 
         type: 'POST', 
         contentType: "application/json", 
         data: 'ass{%22Id%22:10,%22Urn%22:%22AS1234%22,%22Description%22:%22Test%20Description%22,%22AssetStatusId%22:3,%22ExpiryDate%22:%220001-01-01T00:00:00%22,%22OwnerId%22:0,%22TeamId%22:0,%22ProductCode%22:null,%22Keywords%22:null}',  

         success: function (transactionid, response, arguments) { 
          alert("entry successfully added"); 
         }, 
         error: function (transactionid, response, arguments) { 
          alert("add entry failed: " + response.responseText); 
         } 

        }); 

    } 

的.NET代碼:

[WebInvoke(UriTemplate = "{ass}")] 
    public int AddToLibrary(string ass) 
    { 


     return 1; 
    } 

任何人都可以看到,我剛纔似乎有什麼我可以做什麼錯誤不能得到這個權利。

感謝

+1

* 「'錯誤:函數(的transactionId,響應參數)'」 *這不是'錯誤的簽名'在jQuery的['.ajax'](http://api.jquery.com/jQuery.ajax)中的函數。不是說這是問題,但它是一個*問題。 :-)類似地,'success'函數也不會被你聲明的參數調用。 –

+0

您是否嘗試過從Web瀏覽器調用Web服務或者是否編寫過一些C#測試客戶端? – mortb

+0

嘗試從網頁瀏覽器獲得成功。不幸的是,我需要給經典的asp開發人員提供一個示例,因此需要使用jQuery進行排序,因此不需要c#測試客戶端。 – Morn

回答

2

的網址不符合所建議的,試試這個:

url: 'http://myservice/ALWebService/', 
+0

當我在myservice/ – Morn

+0

之後添加任何東西時,我得到了一個404 @Morn:那麼這就是你的問題,你的web服務設置不正確,與jQuery無關,問題出在服務器端。 –

+0

@ T.J。 Crowder嗯,所以我試試這個(AssetLibraryWebService/AddToLibrary {ASS})當我收到一個'Endpoint not found'消息時,我得到'Method not allowed'消息,當我AssetLibraryWebService/AddToLibrary)。我沒有得到的是爲什麼我可以通過不使用它建議的方法調用它來訪問服務的幫助頁面。 – Morn