Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC版本配置中未找到ajax错误_Ajax_Asp.net Mvc - Fatal编程技术网

ASP.NET MVC版本配置中未找到ajax错误

ASP.NET MVC版本配置中未找到ajax错误,ajax,asp.net-mvc,Ajax,Asp.net Mvc,我目前正在一个ASP.NETMVC网站上工作,我在发布版本中遇到了ajax帖子的问题。该站点有两个数据库连接,一个连接到“虚拟”服务器,允许我在不影响实时服务器的情况下测试代码。因此,我必须将站点配置为指向发布配置的实时服务器,以及调试配置的虚拟服务器 除了数据库连接之外,其他一切都是一样的,但是出于某种原因,我的ajax调用在调试版本上运行良好,但在发布版本上抛出了一个错误。我抛出了一个错误:关于ajax失败的Not found警报,但它只在发布版本中失败 我对控制器方法的调用如下所示: $.

我目前正在一个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
,但屏幕截图没有这些参数。你确定你正在运行的应用程序正在使用你发布的代码吗?