Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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与JQuery AJAX;“错误请求”;错误_Jquery_Asp.net_Ajax - Fatal编程技术网

ASP.NET与JQuery AJAX;“错误请求”;错误

ASP.NET与JQuery AJAX;“错误请求”;错误,jquery,asp.net,ajax,Jquery,Asp.net,Ajax,当我尝试使用以下JQuery/AJAX将HTTP post发送到“主”控制器时,我遇到了一个“错误请求”错误。有人知道原因吗 这几乎是从这里获得的示例的副本,只是大大简化了:。似乎找不到控制器,这让我很困惑——我已经做了很多,但都没有成功 视图中引发“错误请求”错误且未到达控制器的按钮: <td> <input type="submit" class="btn-default" name="submit" value="Start Simulating-Jquery" id="

当我尝试使用以下JQuery/AJAX将HTTP post发送到“主”控制器时,我遇到了一个“错误请求”错误。有人知道原因吗

这几乎是从这里获得的示例的副本,只是大大简化了:。似乎找不到控制器,这让我很困惑——我已经做了很多,但都没有成功

视图中引发“错误请求”错误且未到达控制器的按钮:

<td> <input type="submit" class="btn-default" name="submit" value="Start Simulating-Jquery" id="btnSaveComments" />
            <script>     $('#btnSaveComments').click(function () {
                    $.ajax({
                        url: '<%:Url.Action("SaveComments")%>',
                        type: "post",
                        cache: false,
                        success: function (savingStatus) {
                            alert("save")
                        },
                        error: function (xhr, ajaxOptions, thrownError) {
                            alert(xhr.toString())
                            alert(ajaxOptions.toString())
                            alert(thrownError.toString())
                        }
                    });
                });
            </script>
        </td>
 [HttpPost]
    public ActionResult SaveComments(int id, string comments)
    {
        return new EmptyResult();
    }
管制员(家庭):

编辑:这也失败了

视图:

像这样试试

var id = 1;
var comments = 'abc';
    $.ajax({
        data: { 'id': id, 'comments': comments },
        url: '/Home/SaveComments1',
        cache: false,
        success: function (savingStatus) {
            alert("save")
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.toString())
            alert(ajaxOptions.toString())
            alert(thrownError.toString())
        }
    });
});
请尝试:

url: '<%= Url.Action("SaveComments") %>',
url:“”,

我认为您的内联标记是错误的。

看起来您缺少ajax调用的数据部分。缓存:false在请求中添加了一个额外的url参数(post请求不需要),这会导致您的问题吗?我对asp.net不太熟悉,但您遇到的错误可能是由url或您正在发送(或未发送)的post Var引起的。我是Jquery ajax新手,所以它可能很愚蠢,但我撕掉了调用的数据段,作为使其工作的最后一次尝试的一部分。我将编辑并将其放回另一个不起作用的示例中。@KevinB,谢谢你的建议-我尝试从示例中删除cache:false,但这也没有解决问题。一个问题是SaveComments的签名将Id(int)和消息(字符串)显示为参数;但是,您的测试正在发送2个字符串,由于数据类型不匹配,框架无法正确映射。是的,但您正在执行GET而不是POST。好主意!在发布问题之前我已经试过了,但我又试了一次。它不工作-尽管这确实是控制器的正确URL。您的javascript包括哪些内容?也许我遗漏了什么jquery-1.10.2.js,jquery-1.10.2.intellisense.js,jquery.unobtrusive-ajax.js请查看答案是的,这是与ajax通信的安全方式,因此我已更新了我的答案。尝试了此更改,不幸的是,它仍然失败。添加
警报(“”)查看您试图调用的url,是否也是相同的错误?请在javascript语句的末尾加上分号:)
 [HttpPost]
    public ActionResult SaveComments(int id, string comments)
    {
        return new EmptyResult();
    }
var id = 1;
var comments = 'abc';
    $.ajax({
        data: { 'id': id, 'comments': comments },
        url: '/Home/SaveComments1',
        cache: false,
        success: function (savingStatus) {
            alert("save")
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.toString())
            alert(ajaxOptions.toString())
            alert(thrownError.toString())
        }
    });
});
url: '<%= Url.Action("SaveComments") %>',