无法获取jquery AJAX请求进行处理

时间:2015-06-04 02:05:18

标签: javascript c# jquery asp.net ajax

您好我正在尝试对我后面的代码中的方法进行简单的ajax调用。在这一点上,我只是测试,所以我保持尽可能简单,但它始终是错误的。我确定这只是一个简单的错误,但我不知道该怎么做。它似乎非常直接,它应该可以工作,但是当我点击按钮时,它会弹出一个提示“[object Object]”。这是我的代码,非常感谢任何帮助:

aspx文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestPage.aspx.cs" Inherits="Program.TestPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input type="button" id="btnSubmit" value="Submit" />
        </div>
    </form>
      <script type="text/javascript">
          $(function () {
              $('#btnSubmit').click(function () {
                  $.ajax({
                      type: "POST",
                      contentType: "application/json; charset=utf-8",
                      url: "TestPage.aspx/InsertData",
                      dataType: "json",
                      data: "{}",
                      success: function (data) {
                          alert(data.d);                         
                      },
                      error: function (result) {
                          alert(result);
                      }
                  });
              });
          });
    </script>
</body>
</html>

代码背后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.SqlClient;
using System.Web.Services;

namespace Program
{
    public partial class TestPage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        [WebMethod]
        public static string InsertData()
        {
            string retMessage = "ddd";
            return retMessage;

        }
    }
}

更新

对不起大家,事实证明问题出在我的global.asax中。它正在拦截ajax请求,搞乱一切。一旦我确定HTTP是asax文件中的GET,它就会停止杀死我的ajax请求,并开始工作。

2 个答案:

答案 0 :(得分:0)

在您的javascript中,您将InsertData称为POST

尝试

    [WebMethod]
    [HttpPost]
    public static JsonResult InsertData()
    {
        return Json(new { Message = "ddd" }, JsonRequestBehavior.AllowGet);

    }

在你的javascript中,

success: function (data) {
    alert(data.Message);                         
},

答案 1 :(得分:0)

你可以试试这个:

var dataToPost = "{ country:'" + 2 + "', amount:" + 4.02 + "}";

$.ajax({
    url: @Url.Action("PostAmount", "Deal")',
    type: "POST",
    dataType: 'json',
    data: dataToPost,
    cache: false,
    contentType: "application/jsonrequest; charset=utf-8",
    success: function (data) {
        alert("hi"+ data);
    }
});