ASP.NET MVC版本配置中未找到ajax错误
我目前正在一个ASP.NETMVC网站上工作,我在发布版本中遇到了ajax帖子的问题。该站点有两个数据库连接,一个连接到“虚拟”服务器,允许我在不影响实时服务器的情况下测试代码。因此,我必须将站点配置为指向发布配置的实时服务器,以及调试配置的虚拟服务器 除了数据库连接之外,其他一切都是一样的,但是出于某种原因,我的ajax调用在调试版本上运行良好,但在发布版本上抛出了一个错误。我抛出了一个错误:关于ajax失败的Not found警报,但它只在发布版本中失败 我对控制器方法的调用如下所示:ASP.NET MVC版本配置中未找到ajax错误,ajax,asp.net-mvc,Ajax,Asp.net Mvc,我目前正在一个ASP.NETMVC网站上工作,我在发布版本中遇到了ajax帖子的问题。该站点有两个数据库连接,一个连接到“虚拟”服务器,允许我在不影响实时服务器的情况下测试代码。因此,我必须将站点配置为指向发布配置的实时服务器,以及调试配置的虚拟服务器 除了数据库连接之外,其他一切都是一样的,但是出于某种原因,我的ajax调用在调试版本上运行良好,但在发布版本上抛出了一个错误。我抛出了一个错误:关于ajax失败的Not found警报,但它只在发布版本中失败 我对控制器方法的调用如下所示: $.
$.ajax({
type: "GET",
url: "@Url.Action("ReleasePlotFieldName", "TestRecord")" + '?fieldName=' + x + '&fileName=' + filename,
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
success: function (data) {
alert("success");
for (var key in data) {
let b = {
name: data[key][0],
value: data[key][1],
line: data[key][2],
arc: data[key][3]
};
chartData.push(b);
}
PlotData();
//the parameter data contains the array returned from the json PlotFieldName function
},
error: function (xhr, textStatus, errorThrown) {
alert('STATUS: ' + textStatus + '\nERROR THROWN: ' + errorThrown);
}
[HttpPost]
public JsonResult ReleasePlotFieldName(string fieldName, string fileName)
{
var spiData = (DataDecoder)Session["dataDecode"];
var selectedItem = fieldName;
spiData.DecodeData(selectedItem);
List<float[]> toPlot = spiData.returnPlotVector();
return new JsonResult()
{
Data = toPlot,
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
MaxJsonLength = int.MaxValue // Use this value to set your maximum size for all of your Requests
};
}
控制器方法如下所示:
$.ajax({
type: "GET",
url: "@Url.Action("ReleasePlotFieldName", "TestRecord")" + '?fieldName=' + x + '&fileName=' + filename,
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
success: function (data) {
alert("success");
for (var key in data) {
let b = {
name: data[key][0],
value: data[key][1],
line: data[key][2],
arc: data[key][3]
};
chartData.push(b);
}
PlotData();
//the parameter data contains the array returned from the json PlotFieldName function
},
error: function (xhr, textStatus, errorThrown) {
alert('STATUS: ' + textStatus + '\nERROR THROWN: ' + errorThrown);
}
[HttpPost]
public JsonResult ReleasePlotFieldName(string fieldName, string fileName)
{
var spiData = (DataDecoder)Session["dataDecode"];
var selectedItem = fieldName;
spiData.DecodeData(selectedItem);
List<float[]> toPlot = spiData.returnPlotVector();
return new JsonResult()
{
Data = toPlot,
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
MaxJsonLength = int.MaxValue // Use this value to set your maximum size for all of your Requests
};
}
[HttpPost]
public JsonResult ReleasePlotFieldName(字符串字段名,字符串文件名)
{
var spiData=(DataDecoder)会话[“dataDecode”];
var selectedItem=字段名;
spiData.DecodeData(selectedItem);
List toPlot=spiData.returnPlotVector();
返回新的JsonResult()
{
数据=顶部批次,
JsonRequestBehavior=JsonRequestBehavior.AllowGet,
MaxJsonLength=int.MaxValue//使用此值设置所有请求的最大大小
};
}
我完全不知道为什么发布版本没有按预期执行(就像调试版本那样)。我欢迎任何建议
这是通话时浏览器的“网络”选项卡
您的控制器操作用
[HttpPost]
属性修饰,但您的jquery.ajax()
请求是一个GET
。根据您的用例更改一个或另一个(看起来GET可能更合适)。当它说找不到是404还是什么?浏览器的“网络”选项卡应包含有关请求和响应外观的更多信息。确保“x”和“file name”变量构成有效的url将是我的第一个开始。在出现错误时,我添加了网络选项卡的屏幕截图。从您的代码中,我希望ajax调用将包含?fieldName=xxx&fileName=yyy
,但屏幕截图没有这些参数。你确定你正在运行的应用程序正在使用你发布的代码吗?