通过JQuery使用AJAX从JavaScript调用WCF服务
我试图通过JavaScript调用本地的WCF服务。下面是WCF服务的一个示例通过JQuery使用AJAX从JavaScript调用WCF服务,javascript,jquery,ajax,wcf,service,Javascript,Jquery,Ajax,Wcf,Service,我试图通过JavaScript调用本地的WCF服务。下面是WCF服务的一个示例 public string GetMarkers() { List<Marker> lstMarkers = new MarkerMgr().GetMarkers().ToList(); List<Marker> lstMark = new List<Marker>(); foreach (Marker m in lstMar
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);
}
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;
}
我尝试了许多不同的方法来解决这个问题,但都没有成功。根据我所做的所有研究,我认为这与本地主机有关。有人有主意吗?非常感谢。您正在尝试跨域ajax。因此,应该在ajax调用页面中启用cors。 而且服务器应该
"Access-Control-Allow-Origin" header to "*"
看一看这是一个跨域请求吗?没有,因为wcf服务和演示文稿都在本地主机上,所以您可以使用相对路径作为url。不需要在url中使用“”,我尝试过这样的“url:“/Service.svc/GetMarkers”,但结果是一样的。。我认为这与URL有关,但我不知道它有什么问题。你能提供调用该服务的页面URL吗?我已经尝试过了,但仍然没有。。问题是,当我调用ajax时,不会调用wcf服务,因为我正在Visual Studio中调试。。但是,当我通过WCF服务调用该方法时,它会按预期返回。