[OperationContract]
[WebGet]
public string GetImageStatusByName(string name)
{
panonestEntities context = new panonestEntities();
var p = context.Panoramas.Where(x => x.ImageName.Equals(name)).FirstOrDefault();
if (p != null)
{
return p.Status;
}
return "Analysing data";
}如果我转到http://localhost:1539/Services/getimagestatus.svc/GetImageStatusByName?name=800px-Equirectangular-projection,我会得到服务返回的数据。
但是如果我把我的网站发布到http://mydomain/Services/getimagestatus.svc/GetImageStatusByName?name=800px-Equirectangular-projection上,我会得到404分。
在这两种情况下,如果我浏览到http://mydomain/Services/getimagestatus.svc,我可以看到该服务存在。
我的问题不是我不能在浏览器中访问它,而是JQuery
function updateStatus() {
$.get("../../Services/getimagestatus.svc/GetImageStatusByName?name=@ViewBag.showProgressFor",
function (data) {
if (data != null) {
if (data.d != last) {
$('#progressList').append('<li>' + data.d + '</li>');
} else {
$('#progressdot').append('<b> . </b>');
}
last = data.d;
if (data.d == "Done") {
$("#status").hide();
$("#result").show();
}
}
});只在本地主机上工作!上传到服务器后,它不再工作
发布于 2011-12-16 08:47:30
看看你的网页检查器,看看它真正要加载的路径是什么。
我的直觉是,在"../../"中添加路径才是问题所在。您的本地主机上的not服务器可能会看到并正确处理此目录遍历,或者丢弃此目录遍历,而您的生产服务器不会。
相反,只需尝试单个前导斜杠,该斜杠始终相对于当前域。
$.get("/Services/getimagestatus.svc/GetImageStatusByName...", ...)这应该适用于本地主机或您的域。
https://stackoverflow.com/questions/8528548
复制相似问题