2010-10-25 64 views
0

幾天以來,我一直試圖讓ASMX webservice通過jQuery工作。通過jquery調用asmx得到錯誤的網址

繼承人我的代碼

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#btnTest").click(function() { 
      $.ajax({ 
       type: "POST", 
       url: "/WebService.asmx/HelloWorld", 
       cache: false, 
       contentType: "application/json; charset=utf-8", 
       data: "{}", 
       dataType: "json", 
       success: function (data) { 
        alert(data); 
       }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus + ' ' + errorThrown + ' ' + XMLHttpRequest); } 
      }); 
     }); 
    }); 
</script> 

的問題似乎是,瀏覽器會檢查這個網址:

http://localhost:52657/WebService.asmx/CheckSmtp 

當它真的應該檢查這個網址:

http://localhost:52657/myappname/WebService.asmx/CheckSmtp 

所以我試着在$.ajax url中沒有斜線,但後來更糟,因爲如果我在頁面管理員/ products/edit然後ajax去到admin/products/edit/webservice.asmx這肯定是錯誤的。

那麼如何讓jquery查看根文件夾呢?

這可能是問題只在本地主機上,但我無法用這種方式測試任何東西。

回答

1

這將解決正確的URL服務器端:

<%=ResolveUrl("~/WebService.asmx/HelloWorld")%> 
+0

萬分感謝。實際上意味着有人給我一個標籤放在主頁面的提示,它的價值服務器端到根路徑。它的工作。但是這種技術解決了我一個不同的問題。 JavaScript的src無法正確解析。我用你的答案,它的工作原理。謝謝。 amchoo? – 2010-10-29 10:30:19

+0

好的。現在我有機會在ajax控件的url部分使用它。它工作得很花哨 – 2010-11-04 13:07:05