C# 只能从本地主机访问Web服务?
我试图通过指向MVC5控制器的jQueryAjax调用从Web服务获取JSON。当我在VisualStudio(2013)中本地运行它时,它工作正常,但每当我将它部署到服务器时,都会出现错误。webservice是一种基于云的服务 我搞不懂这个问题 当我试图从JS中的fail函数中获取错误时,我只得到“error”,“notfound” 代码 控制器:C# 只能从本地主机访问Web服务?,c#,jquery,json,web-services,C#,Jquery,Json,Web Services,我试图通过指向MVC5控制器的jQueryAjax调用从Web服务获取JSON。当我在VisualStudio(2013)中本地运行它时,它工作正常,但每当我将它部署到服务器时,都会出现错误。webservice是一种基于云的服务 我搞不懂这个问题 当我试图从JS中的fail函数中获取错误时,我只得到“error”,“notfound” 代码 控制器: public string GetJson2() { string url = "*private*";
public string GetJson2()
{
string url = "*private*";
using (var client = new WebClient())
{
//JavaScriptSerializer jss = new JavaScriptSerializer();
string json = client.DownloadString(url);
//var tracks = jss.Deserialize<Tracks>(json);
//string output = jss.Serialize(tracks);
// TODO: do something with the model
return json;
}
}
公共字符串GetJson2()
{
字符串url=“*private*”;
使用(var client=new WebClient())
{
//JavaScriptSerializer jss=新的JavaScriptSerializer();
string json=client.DownloadString(url);
//var tracks=jss.Deserialize(json);
//字符串输出=jss.Serialize(tracks);
//TODO:对模型做些什么
返回json;
}
}
Javascript:
$.getJSON("/Home/GetJson2")
.done(function (data) {
var string = "<table>";
var tbody = "";
var count = 0;
var header = "<tr>";
// On success, 'data' contains a list of documents.
$.each(data, function () {
tbody += "<tr>";
$.each(this, function (k, v) {
if (count == 0) { header += "<th>" + k + "</th>"; }
tbody += "<td>" + v + "</td>";
});
tbody += "</tr>";
count += 1;
});
header += "</tr>";
var table = string + header + tbody;
table += "</table>";
$("#results").html(table);
})
.fail(function (x, y, z) { alert(x); alert(y); alert(z); });
$.getJSON(“/Home/GetJson2”)
.完成(功能(数据){
var字符串=”;
var tbody=“”;
var计数=0;
var header=“”;
//成功时,“数据”包含文档列表。
$。每个(数据、函数(){
tbody+=”;
$。每个(此,函数(k,v){
如果(计数==0){header+=“”+k+“”;}
t车身+=“”+v+“”;
});
tbody+=”;
计数+=1;
});
标题+=“”;
变量表=字符串+表头+表体;
表+=”;
$(“#结果”).html(表格);
})
.fail(函数(x,y,z){alert(x);alert(y);alert(z);});
如果我需要提供任何其他东西,请告诉我
谢谢
更新
这似乎更像是一个MVC问题,而不是一个webservice问题,因为当我在浏览器中直接导航到上面的控制器时,我会看到一个404页面,所以似乎我没有正确配置一些东西?同样,我可以直接在localhost中导航,但不能在服务器上导航
更新2
我解决了路由问题,现在在尝试从Web服务获取数据时收到500个错误。再一次在当地效果很好。我现在在黑暗中拍摄。http响应代码是404吗?可能DNS没有正确设置为指向远程服务器。我确实从控制器的呼叫中得到了404。如何将DNS设置为指向远程服务器?请首先尝试在浏览器中使用相同的url,然后查看服务器的说明。您是否已部署到网站的根目录,或域下的虚拟网站?(因为你的URL是根相对的)当我直接进入浏览器ie中的控制器时:“我得到一个404。如果我在localhost中也这样做,它就会工作。为什么在localhost中工作而在部署时不工作?当您在任何服务器中部署它时,请确保所有其他资源都相应地保留,而不仅仅是代码文件。检查war文件,如果需要,手动添加它。