JSON Post 调用错误函数

2024-03-16

我有这个 jquery post 调用,它以某种方式调用错误函数,即使它将数据完美地输入数据库。

<script type="text/javascript">
    $(document).ready(function () {
        $("#ExtMailCreate").click(function () {
            var url = '@Url.Action("Create")';
            var data = JSON.stringify(SaveExternalMail());
            $.ajax({
                type: "POST",
                url: url,
                data: data,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    $("#result").append("pass");
                },
                error: function (data) {
                    $("#result").append("error");
                }
            });
        });
    });

    function SaveExternalMail() {
        var costcentrecode = $("#CostCentreCode").val();
        var day = $("#ExtMailDatePicker").val();
        var externalMailItemID = $("#ExternalMailItemID").val();
        var externalMailLocationID = $("#ExternalMailLocationID").val();
        var quantity = $("#Quantity").val();
        return {
            CostCentreCode: costcentrecode,
            Day: day,
            ExternalMailItemID: externalMailItemID,
            ExternalMailLocationID: externalMailLocationID,
            Quantity: quantity
        };
    }
</script>

- 控制器

   <HttpPost()> _
    Function Create(ByVal collection As ExternalMail) As JsonResult
        Try
            If ModelState.IsValid Then
                _repositoryForExternalMail.Save(collection, "")
            End If

            Return Json(New ExternalMail With {.CostCentreCode = collection.CostCentreCode, .Day = collection.Day, .Quantity = collection.Quantity}, JsonRequestBehavior.AllowGet)

        Catch ex As Exception
            Return Json("An Error Occurred")
        End Try
    End Function

- - 更新 - -

Google Chrome 报告以下错误:

POST localhost/Mail/ExternalMail/Create 403(禁止)
jquery.min.js:4 发送 jquery.min.js:4 f.extend.ajax
jquery.min.js:4 (匿名函数) 创建:59 f.event.dispatch
jquery.min.js:3 h.handle.i

-- 页面来源

 <!DOCTYPE html>
 <html>
 <head>
<meta charset="utf-8" />
<title>Create</title>
<link href="/Mail/Content/Site.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="/Mail/Scripts/jqModal.css" />
<link href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.dataviz.min.css" rel="stylesheet" type="text/css" />
<link href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.blueopal.min.css" rel="stylesheet" type="text/css" />

     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js">  </script>
 <script src="/Mail/Scripts/json2min.js" type="text/javascript"></script>
 <script src="/Mail/Scripts/jquery.JSONP.min.js" type="text/javascript"></script>
 <script src="/Mail/Scripts/jquery.validate.min.js" type="text/javascript"></script>
 <script src="/Mail/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript">         </script>

<script src="http://cdn.kendostatic.com/2012.2.913/js/kendo.all.min.js" type="text/javascript"></script>
<script src="http://cdn.kendostatic.com/2012.2.913/js/kendo.aspnetmvc.min.js" type="text/javascript"></script>
<script src="/Mail/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/Mail/Scripts/jqModal.js"></script>

 </head>
 <body>
<div class="page">
    <header>
  <div id="pageheader">
        <div id="pageheader_left">
            <img id="TitleBanner" src=/Mail/Content/Images/titlebanner.jpg alt="TitleBanner"/>
        </div>
        <div id="pageheader_center">

        </div>
        <div id="pageheader_right">
         <a href="/Mail/" title="Click to go to Home Page"><img id="HomeImage" src=/Mail/Content/Images/home.gif alt="Home"/></a>
         <a href="/Mail/Account/About"><img id="AboutImage" src=/Mail/Content/Images/about.gif alt="About"/></a>
          <a href="/Mail/Account/Logoff"><img id="ExitImage" src=/Mail/Content/Images/logoff.gif alt="Exit"/></a>
         </div>    
        <div id="pageheader_lower">
        </div>    
    </div>


     <ul class="k-widget k-reset k-header k-menu" id="Menu"><li class="k-item k-state-default">
 <a class="k-link" href="/Mail/">Home</a></li><li class="k-item k-state-default"><span class="k-link">Manage<span class="k-icon k-i-arrow-s"></span></span><ul class="k-group"><li class="k-item k-state-default"><span class="k-link">External Mail<span class="k-icon k-i-arrow-e"></span></span><ul class="k-group"><li class="k-item k-state-default"><a class="k-link" href="/Mail/ExternalMail">External Mail</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/ExternalMailCategory">External Mail Category</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/ExternalMailItem">External Mail Item</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/ExternalMailCost">External Mail Cost</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/ExternalMailLocation">External Mail Location</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/ExternalMailInvoice">External Mail Invoice</a></li></ul></li><li class="k-item k-state-default"><span class="k-link">Internal Mail<span class="k-icon k-i-arrow-e"></span></span><ul class="k-group"><li class="k-item k-state-default"><a class="k-link" href="/Mail/InternalMail">Internal Mail</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/InternalMailCategory">Internal Mail Category</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/InternalMailItem">Internal Mail Item</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/InternalMailCost">Internal Mail Cost</a></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/InternalMailLocation">Internal Mail Location</a></li></ul></li><li class="k-item k-state-default"><a class="k-link" href="/Mail/CostCentre">Cost Centre</a></li></ul></li><li class="k-item k-state-default"><span class="k-link">Reports</span></li></ul><script>
jQuery(function(){jQuery("#Menu").kendoMenu({});});
 </script>              
    </header>
    <section id="main">

 <div class="jqmWindow" id="dialog">
     <a href="#" class="jqmClose">Close</a>
 </div>


 <script type="text/javascript">

$(document).ready(function () {

    var exturl = '/Mail/ExternalMail/Create';
    $("#ExtMailCreate").click(function () {


        var dataJSON = JSON.stringify(SaveExternalMail());

        $.ajax({
                    cache: false,
                        type: "POST",
                        url: exturl,
                        data: dataJSON,
                        contentType: 'application/json; charset=utf-8',
                        success: function (data) {
                            showMessage("test", "information");
                        },
                        error: function (xhr, textStatus, errorThrown) {
                            showMessage("An error occurred while adding this record.           Please try again later.", "error");
                        }


                    });

    });

});

function showMessage(message, messageType) {
    $().ready(function () {
        $('#dialog').jqm();

        switch (messageType) {
            case 'information':
                $('#dialog').removeClass("errorMessage");
                $('#dialog').addClass("informationMessage");
                break;
            case 'error':
                $('#dialog').removeClass("informationMessage");
                $('#dialog').addClass("errorMessage");
                break;
            default:
                break;
        }

        $('#dialog').html("<a href=\"#\" class=\"jqmClose\">Close</a><br />" + message);
        $('#dialog').jqmShow();
    });
}


    function SaveExternalMail() {
        var costcentrecode = $("#CostCentreCode").val();
        var day = $("#ExtMailDatePicker").val();
        var externalMailItemID = $("#ExternalMailItemID").val();
        var externalMailLocationID = $("#ExternalMailLocationID").val();
        var quantity = $("#Quantity").val();

        return { CostCentreCode: costcentrecode, Day: day, ExternalMailItemID:      externalMailItemID, ExternalMailLocationID: externalMailLocationID, Quantity: quantity };
    }

 </script>
 <form action="/Mail/ExternalMail/Create" method="post">    <fieldset>
    <legend>ExternalMail</legend>
    <div class="editor-label">
        <label for="ExternalMailLocationID">Please select a Location</label>
    </div>
    <div class="editor-field">
        <select data-val="true" data-val-number="The field ExternalMailLocationID must be a number." data-val-required="The ExternalMailLocationID field is required." id="ExternalMailLocationID" name="ExternalMailLocationID">
 <option value="2">Sydney</option>
 </select>
        <span class="field-validation-valid" data-valmsg-for="ExternalMailLocationID" data-valmsg-replace="true"></span>
    </div>
    <div class="editor-label">
        <label for="CostCentreCode">Please select a CostCentre</label>
    </div>
    <div class="editor-field">
        <select id="CostCentreCode" name="CostCentreCode" size="15"><option value="Test000">Test</option>
      </select>
        <span class="field-validation-valid" data-valmsg-for="CostCentreCode" data-valmsg-replace="true"></span>
    </div>
         <div class="editor-label">
             <label for="ExternalMailItemID">Please select a Mail Item Type</label>
         </div>
         <div class="editor-field">
             <select data-val="true" data-val-number="The field ExternalMailItemID must be a number." data-val-required="The ExternalMailItemID field is required." id="ExternalMailItemID" name="ExternalMailItemID"><option value="4">Test10</option>
      </select>
        <span class="field-validation-valid" data-valmsg-for="ExternalMailItemID" data-valmsg-replace="true"></span>
    </div>
    <div class="editor-label">
        <label for="Day">Please select a Date</label>
    </div>
    <div class="editor-field">
        <input class="k-input" id="ExtMailDatePicker" name="ExtMailDatePicker" type="date" value="19/03/2013" /><script>
     jQuery(function(){jQuery("#ExtMailDatePicker").kendoDatePicker({"format":"d/MM/yyyy","min":new Date(1900,0,1,0,0,0,0),"max":new Date(2099,11,31,0,0,0,0)});});
      </script>
        <span class="field-validation-valid" data-valmsg-for="Day" data-valmsg-replace="true"></span>
    </div>
    <div class="editor-label">
        <label for="Quantity">Please enter the no of Mails</label>
    </div>
    <div class="editor-field">
        <input class="text-box single-line" data-val="true" data-val-number="The field Quantity must be a number." data-val-required="The Quantity field is required." id="Quantity" name="Quantity" type="text" value="" />
        <span class="field-validation-valid" data-valmsg-for="Quantity" data-valmsg-replace="true"></span>
    </div>
    <p>
        <input type="button" value="Create" id="ExtMailCreate" />
    </p>
</fieldset>
 </form><div>
<a href="/Mail/ExternalMail">Back to List</a>
 </div>
      <div id="result">
 </div>

    </section>
    <footer>

    </footer>
</div>
 </body>
 </html>

-- Ajax请求响应

Request URL:http://localhost/Mail/ExternalMail/Create
Request Method:POST
Status Code:403 Forbidden
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Authorization:Negotiate    TlRMTVNTUAADAAAAAAAAAEgAAAAAAAAASAAAAAAAAABIAAAAAAAAAEgAAAAAAAAASAAAAAAAAABIAAAABcKIogUBKAoAAAAP
Connection:keep-alive
Content-Length:113
Content-Type:application/json; charset=UTF-8
Cookie:ASP.NET_SessionId=tg1xrabaigumj3fxooa1satc
DNT:1
Host:localhost
Origin:http://localhost
Referer:http://localhost/Mail/externalmail/Create
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko)     Chrome/25.0.1364.172 Safari/537.22
X-Requested-With:XMLHttpRequest
Request Payload
{"CostCentreCode":"B125","Day":"20/03/2013","ExternalMailItemID":"4","ExternalMailLocationID":"1","Quantity":"2"}
Response Headersview source
Cache-Control:private, s-maxage=0
Content-Length:127
Content-Type:application/json; charset=utf-8
Date:Wed, 20 Mar 2013 01:31:21 GMT
Server:Microsoft-IIS/5.1
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:3.0
X-Powered-By:ASP.NET

我认为问题在于指定JsonRequestBehavior.AllowGet

然后发布到该方法:

$.ajax({
  type: "POST",
  url: url,

如果数据库正在填充,我们就知道存储库代码正在触发。浏览器正在报告 HTTP403,这听起来像是框架正在抛出安全异常,如果它期望响应 GET 并收到 POST,则可能会这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON Post 调用错误函数 的相关文章

  • 传递表 ID 时循环遍历

    我有四个 HTML 表 必须将一个表中的数据与用户选择的表中的数据进行比较 我将用户选择的表 ID 传递到此函数中 但我不知道如何循环此表的行 function callme code var tableName table code al
  • 使用 jquery ajax 和 asp.net 处理程序上传文件

    我正在努力让它工作 但我在上传文件时遇到错误 ASPX
  • EMBER直接路由URL访问不加载数据

    当我直接从浏览器访问我的网址时遇到问题 它不会加载我的单一帖子信息 示例 index html posts 10052308 但当我访问 index html posts 然后单击我的一篇文章时 它会起作用 我的网址会更改为 index h
  • 使用 JSONArray 还是普通数组来存储/读取数据更有效?

    我正在使用一个连接到PHP MySQL返回所有内容的服务器JSON格式 例如 用户列表作为JSONArray of JSONObject 每个对象都包含单个用户的信息 姓名 位置 电话号码等 处理这种格式的信息时 将所有内容保留在其中会更有
  • 在 jQuery 中,每次 DOM 更改时如何调用函数?

    我需要确保即使 DOM 更改后页面仍保持脚本描述的方式 我的脚本必须处理 DOM 的这些更改 以便我的脚本不仅仅处理初始状态 是否有一个事件可以用来处理这些 DOM 更改 从最严格的意义上来说 你的问题是这样的 Narrow the con
  • JavaScript CSV 验证

    如何检查文本框中的逗号分隔值并在未找到时发出警报 如果有的话 里面应该有字符 比如A B C D function validate validate text box
  • 从 JavaScript 加载图像

    在我的专辑幻灯片放映页面上 我有类似的代码 span style display none img src imageUrl span span show loader span in showImage 我确定图像已加载 因此我显示图像并
  • document.ready 之前的 Jquery UI 界面看起来很难看

    HTML 元素在 onload 或 document ready 被触发之前显示 所有 jQuery UI 小部件都在 document ready 上加载 这使得页面在最初几秒钟看起来很难看 处理它的可能选项 在使用 jQuery UI
  • 有没有办法让 jslint 在 javascript 的下一行中使用大括号?

    我改变了我的编码风格 function getParams entity use strict var accountID store getItem AccountID switch entity case Topic to functi
  • Twitter Bootstrap - 下拉菜单 - 箭头键不适用于 Firefox 中的输入标签

    要求 我想在带有用户名和密码字段的下拉菜单中放置一个登录表单 我可以做到这一点 除了以下问题之外 一切正常 Issue 打字时我无法使用箭头键 上 下 firefox 当输入位于下拉代码之外时 这很有效 这适用于其他浏览器 例如 googl
  • Jquery.Validate - 基于哪个选项卡添加/删除规则

    我有一个 Bootstrap 4 选项卡式界面 每个选项卡上都有输入框 我想允许用户根据他们所在的选项卡输入不同的必填字段 因此我希望根据该选项卡添加或删除验证 无论用户位于哪个选项卡 还有一些强制输入 我所做的是创建一个默认验证函数 添加
  • MVC 3 布局页面、Razor 模板和 DropdownList

    我想在我的网站的所有页面上包含年份的下拉列表 我认为放置此逻辑的好地方是布局页面 layout cshtml 如果用户更改年份 我想更改我的年份会话 ModelBinder 也进行更改 这对于 ASP NET Web 表单来说很容易做到 但
  • 如何绕过Access-Control-Allow-Origin?

    我正在一个平台上对我自己的服务器进行ajax调用 他们设置了阻止这些ajax调用的平台 但我需要它从我的服务器获取数据以显示从我的服务器数据库检索到的数据 我的 ajax 脚本正在运行 它可以将数据发送到我的服务器的 php 脚本以允许其处
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • 在“onClick”上切换 DIV 高度

    我想切换分区的高度 我尝试过将 animate 与 if else 语句一起使用 但它只会反弹 我现在使用的代码将隐藏我的分区而不是切换高度 点击时会触发 document ready function content1 toggle fu
  • 如何对使用 Controller.User 变量的控制器操作进行单元测试?

    我有一个控制器操作 如果用户已经登录 它会自动重定向到新页面 User Identity IsAuthenticated 针对这种情况编写单元测试以确保重定向发生的最佳方法是什么 我一直在使用以下 Mocks 和 Moq 来允许在我的单元测
  • 如何使用 jQuery 从 REST xml 响应构建数据表?

    我有来自 Ajax REST 调用的 XML 响应 与下面的类似
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的
  • 如何检查用户电子邮件的唯一性并将结果传递给 jQuery?

    我有这个问题 我正在控制器中检查用户电子邮件并发送 json 成功响应 如果已获取 并添加输入的 css 样式 我还需要阻止提交并添加一些消息 这是我的检查电子邮件操作 使用本文 http paydrotalks com posts 45
  • jQuery:如何正确使用 .stop() 函数?

    在本页面 http www arvag net old smsbox de http www arvag net old smsbox de 当您将鼠标悬停在 Informationen 和 ber ins 上时 它会显示一个子菜单 当您将

随机推荐

  • Visual Studio 2017 Update 3 - 找不到指定的 SDK“Microsoft.NET.Sdk.Web”

    Error C WebApp WebApp csproj 错误 找不到指定的 SDK Microsoft NET Sdk Web C WebApp WebApp csproj 我正在尝试打开 Dotnet 核心项目 但收到上述错误 我已经安
  • 数据库理论-两个表之间的关系

    我有一个包含两个表的数据库 让我们称它们为 Foo 和 Bar 每个 foo 可以与任意数量的 bar 相关 每个 bar 也可以与任意数量的 foo 相关 我希望能够通过一个查询检索与特定 bar 关联的 foo 以及与特定 foo 关联
  • Android USB 配件多线程

    我遇到了由多线程和 Android Open Accessory 引起的问题 我需要与 USB 附件通信 但我需要从 2 个线程进行通信 一个线程生成并发送数据 另一个线程读取数据 为什么我不使用单线程 因为在读取之前可能有 1 次或多次写
  • 使用 Rust 从不同偏移量的文件中读取

    我正在开发一个项目 该项目涉及从不同偏移量的文件中读取不同的信息 目前 我正在使用以下代码 SECTORS PER CLUSTER starts at 13 opened file seek SeekFrom Start 13 unwrap
  • 如果在 javascript 中返回,如何抓取搜索结果(使用 python)

    我想要抓取的网站使用 JavaScript 填充返回 我可以简单地以某种方式调用脚本并处理其结果吗 当然 没有分页 我不想运行整个过程来抓取生成的格式化 HTML 但原始源是空白的 看一看 回报的来源很简单
  • 问:在 rmarkdown html 中的 for 循环中创建传单地图

    我正在尝试在 rmarkdown 文件中创建带有 for 循环的传单地图 这是一个最小的例子 title Test output html document r quakes echo F data quakes library leafl
  • AMP Html 无法在 iphone safari 浏览器上运行以进入新窗口

    最近 我正在使用 Accelerated Mobile Pages AMP 开发渐进式 Web 应用程序 我必须添加锚链接target blank 以便用户单击该链接将被重定向到带有锚点位置的新窗口 a href External Url
  • Angular.js ng-style 不会绑定值

    我在 angularjs 上遇到了问题 即使经过研究 我也找不到错在哪里 我需要重新计算元素的 css 值 left 我正在使用 ng style 指令和一个将返回具有 css 值的对象的方法 这就是 据我所知 我必须做的 但是当我更新值时
  • 项目骑手 - 构建时查看 msbuild 输出

    当我尝试构建解决方案时 我想查看 msbuild 日志 它最初是 Visual Studio 2015 的解决方案 Rider 的输出构建窗口 视图 gt 工具窗口 gt 构建 显示 Microsoft R 构建引擎版本 14 0 2542
  • 使用 git rebase 时自动跳过空提交

    通常 你必须做git rebase skip 如果有一个开关可以自动跳过这些空提交 那就太好了 有人知道怎么做吗 非常古老的话题 但对我来说是搜索引擎上的第一个结果 我终于发现有一个 empty参数可以采用以下值之一 keep drop 和
  • Android 词典应用程序

    我想在字典之上开发一个应用程序 即使用字典作为其一部分的应用程序 市场上有用于此目的的任何字典应用程序吗 遵循 GPL 的应用程序是更好的 还有那些使用本地数据库的应用程序而不是使用网络连接是更好的选择 如果没有 市场上是否有可用的词典数据
  • 使用 Android Studio 将 iTextG 包含在 Android 项目中

    在 Android Studio 中包含 iTextG 时出现以下错误 com android dex DexException Multiple dex files define Lcom itextpdf awt geom Affine
  • GAE/P:API 调用的交易安全

    假设您使用交易来处理 Stripe 付款并更新用户实体 ndb transactional def process payment user key amount user user key get user stripe payment
  • Python:捕获任何异常并将其放入变量中

    为了弄清楚如何避免一些递归 我需要捕获任何异常 编辑 不仅仅是从 Exception 派生的异常 而是所有异常 包括 KeyboardInterrupt 和用户异常 将其放入变量中 然后重新引发它位于 catch 块之外 本质上 我正在尝试
  • 如何使用 mixpanel API?

    我无法连接到 mixpanel 我尝试过使用正确的 api key 和 api secret 如下所示
  • 调度程序 Invoke(...) 与 BeginInvoke(...) 混淆

    我很困惑为什么我不能在 Count 方法中的 Dispatcher 上使用 BeginInvoke 来使此测试计数器应用程序与 2 个 或更多 同时运行的 countertextbox 一起使用 您可以通过将 BeginInvoke 替换为
  • 查找 CMake 的包 Eigen3

    CMake 找不到我的Eigen3包裹 我设置了一个名为的环境变量 EIGEN3 INCLUDE DIR 指向路径所在的位置FindEigen3 cmake is 然后在 CMakelists txt 中我写道 find package E
  • 嵌入式 SurveyMonkey 调查未出现在移动设备上

    我希望将现有的猴子调查嵌入到网页中 请按照此处的说明进行操作 http help surveymonkey com articles en US kb Website Collector http help surveymonkey com
  • perl 从 imap 消息中获取所有消息头

    I use Mail IMAPClient https metacpan org pod Mail IMAPClient 有一些变数 body imap gt body string msg header imap gt message s
  • JSON Post 调用错误函数

    我有这个 jquery post 调用 它以某种方式调用错误函数 即使它将数据完美地输入数据库