无法使用 ajax 将数据发送到 asp.net mvc 控制器



你好,我在通过ajax向asp.net控制器发送数据时遇到问题。当我试图在opera检查器中查看问题时,我在jquery第8720行得到了服务器500错误。xhr.send((s.hasContent&&s.data)||null);以下是我的代码示例:Html:

      <div class="top-row">
            <div class="field-wrap">
                    <label>
                        <span class="req"></span>
                    </label>
                    <input class="text-center" type="text" required autocomplete="off"  name="url" id="url" />
            </div>

          </div>

          <button type="submit" class="button button-block" name="sendIT" id="sendIT">Save</button>

        </div>

Javascript:

var button1 = document.getElementById("sendIT");
function LoginButton1OnClick() {
    var text = $('#url').val();
    alert(text);
    $.ajax({
        type: 'POST',
        url: '/Book/TestBook',
        crossDomain: true,
        data: text,
        success: function () {
            alert('success');
        }, error: function (data) {
            alert("Error");  
        }
    });
}
button1.addEventListener("click", LoginButton1OnClick);
C#:

[HttpPost]在此输入代码 public ActionResult TestBook(string test) { var s1 = test; return View(); }

您需要将数据作为对象发布

$.ajax({
    type: 'POST',
    url: '/Book/TestBook',
    crossDomain: true,
    data: {test: text},
    success: function () {
        alert('success');
    }, error: function (data) {
        alert("Error");  
    }
});

您得到的错误500是因为ajax POST请求中的"数据"格式错误。您需要将数据作为对象发送:

Javascript

    $.ajax({
        type: 'POST',
        url: '/Home/TestBook',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify({test: text }),
        success: function (data) {
            alert('success');
        }, error: function (data) {
            alert("Error");
        }
    });

请注意,javascript中的"test"参数需要在控制器中使用完全相同的名称。

相关内容

  • 没有找到相关文章

最新更新