2013-05-21 38 views
0

WebService的樣子

using System;<br/> 
using System.Collections.Generic;<br/> 
using System.Linq;<br/> 
using System.Web;<br/> 
using System.Web.Services;<br/> 
[WebService(Namespace = "http://tempuri.org/")]<br/> 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]<br/> 
[System.Web.Script.Services.ScriptService] <br/> 
public class Map : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public MapClass LatitudeLongitude() 
    { 
     MapClass mapobj = new MapClass(); 
     return mapobj; 

    } 
    [WebMethod] 
    public string helloToYou() 
    { 

     return "Hello"; 
} 

} 


類的樣子:

public class MapClass <br/> 
{ 

    string latitude; 

    string longitude; 

    public MapClass() 

    { 

     latitude = "51.508742"; 
     longitude = "-0.120850"; 
    } 

} 

,我試圖調用從web服務html5頁

`</head>`<br/> 
`<body>`<br/> 

`<form id="form1" runat="server">`<br/> 

`<h1>Map</h1>`<br/> 

`<input id="View" type="button" value="Click to view" onclick="getData()"/>`<br/> 

`</form>`<br/> 

`</body>`<br/> 


`<script type="text/javascript" src="D:\PepsiCO\jQuery\jquery-1.7.1.min.js"> </script>`<br/> 

`<script type="text/javascript">` 

    function getData() { 

     $.ajax({ 

      type:"POST", 
      url: "http://localhost:53788/HTML5_WebService_Maps/Map.asmx/helloToYou", 
      contentType: "application/json;charset=utf-8", 
      dataType: "json", 
      complete: function (response) 
      { alert('complete'); }, 
      success: function (response) 
      { alert('Success'); }, 
      error: function (response) 
      { alert('Failure'); } 
     }); 
    } 
`</script>` 
`</html>` 

當我瀏覽chrome中的html頁面時,它在alert框中顯示失敗。不知道爲什麼它不顯示成功。請幫忙。

+0

嘗試添加'data:'{}','到你的ajax函數。不知道它是否會工作。 – thunderbird

+1

請確保你的服務器返回的內容類型'application/json' – muneebShabbir

+0

也將url設置爲'url:「Map.asmx/helloToYou」,' – thunderbird

回答

0

嘗試追加這將WebMethod:

[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 

而且隨着串行返回對象:

JavaScriptSerializer js = new JavaScriptSerializer(); 
string strJSON = js.Serialize(mapobj); 
return strJSON; 

而且它可能是張貼的錯誤響應是一個好主意:

error: ajaxFailed 

function ajaxFailed(xmlRequest) { 
$('#errordiv).html(xmlRequest.status + ' <br /> ' + 
      xmlRequest.statusText + '<br />' + 
      xmlRequest.responseText); 
} 

迴應此評論的回覆: 報價https://stackoverflow.com/users/158502/langdon'根據我的經驗,當執行跨站點腳本(訪問被拒絕)或請求無法訪問的URL(錯字,DNS問題等)時,您會看到狀態爲0。

jQuery Ajax - Status Code 0?

+1

您不必序列化必須返回的數據。 asp.net自動爲你做。 – thunderbird

+0

狀態爲** 0 **; statusText是**錯誤**; responsetext是**空格** – Libin

+0

根據我的經驗,當執行跨站點腳本(拒絕訪問)或請求無法訪問的URL(錯字,DNS問題等)時,您會看到狀態爲0。取自:http://stackoverflow.com/questions/2000609/jquery-ajax-status-code-0 – Yeronimo

0

變化數據類型來htmland檢查

dataType: "html", 
0

是您的網頁運行相同的域/端口上?響應的狀態代碼是什麼?

+0

狀態代碼:錯誤/ 0 – Libin

+0

那麼域/端口呢? Chrome控制檯中的任何條目? – mguimard

+0

代碼沒有到達服務器 – Libin