【发布时间】:2013-05-08 10:18:11
【问题描述】:
我正在尝试通过 JavaScript 调用位于本地的 WCF 服务。这是 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;
}
我尝试了许多不同的方法来解决这个问题,但都没有成功。从我所做的所有研究中,我认为它与本地主机有关。有人有想法吗?非常感谢。
【问题讨论】:
-
这是跨域请求吗?
-
不,它的 wcf 服务和演示文稿都在本地主机上
-
那么你可以使用相对路径作为 url。无需在您的网址中使用“localhost:61892”
-
我试过这样 "url: "/Service.svc/GetMarkers" 但结果是一样的。我认为它与 URL 有关,但我不知道出了什么问题用它。
-
能否提供调用服务的页面网址?
标签: javascript jquery ajax wcf service