2013-05-08 69 views
0

我想通過JavaScript調用位於本地的WCF服務。這裏是WCF服務的一個示例。通過jQuery使用AJAX調用WCF服務

public string GetMarkers() 
    { 
     List<Marker> lstMarkers = new MarkerMgr().GetMarkers().ToList(); 
     List<Marker> lstMark = new List<Marker>(); 
     foreach (Marker m in lstMarkers) 
     { 
      Marker marker = new Web_Service.Marker(); 
      marker.Id = m.Id; 
      marker.Latitude = m.Latitude; 
      marker.Longitude = m.Longitude; 
      marker.Title = m.Title; 
      marker.Description = m.Description; 
      marker.Icon = m.Icon; 
      lstMark.Add(marker); 
     } 

     JavaScriptSerializer jss = new JavaScriptSerializer(); 
     jss.MaxJsonLength = Int32.MaxValue; 

     return jss.Serialize(lstMark); 
    } 

這是我用來調用WCF服務的函數。

function getMarkers() { 
     var markers = null; 
     $.ajax({ 
      async: true, 
      type: "GET", 
      url: "http://localhost:61892/Service.svc/GetMarkers", // the URL of the controller action method 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      processData: true, 
      success: function (result) { 
       alert(result); 
       markers = result; 
      }, 
      error: function (req, status, error) { 
       alert(error); 
      } 
     }); 
     return markers; 
    } 

我已經嘗試了許多不同的方法來解決這個問題,但他們沒有成功。從我所做的所有研究中,我認爲它是關於本地主機的。任何人有想法?非常感謝。

+0

那是一個跨域請求? – 2013-05-08 10:23:58

+0

沒有它的wcf服務和演示文稿都在localhost – Dirett 2013-05-08 10:34:08

+0

那麼你可以使用相對路徑作爲url。沒有必要在你的url中使用「」http:// localhost:61892 /「 – 2013-05-08 10:36:07

回答

0

您正在嘗試跨域ajax。因此,在你的ajax調用頁面中放置啓用cors。 並且還服務器應該

"Access-Control-Allow-Origin" header to "*" 

看看this

+0

我試過了,仍然沒有..事情是,當我打電話給AJAX的WCF服務沒有被調用,因爲我在Visual Studio中調試..但是當我通過WCF服務調用方法它會按照它的假設返回。 – Dirett 2013-05-08 13:18:42