【问题标题】:What is wrong with jquery Ajax?jquery Ajax有什么问题?
【发布时间】:2015-07-04 08:19:23
【问题描述】:

我正在使用 Jquery ajax 从数据库接收信息。我测试服务器端方法。它工作正常。当页面中的调用是错误json时: 消息:“无效的 JSON 原语:}。”

堆栈跟踪:

" 在 System.Web.Script.Serialization.JavaScriptObjectDe 序列化程序.BasicDeserialize(字符串输入,Int32 depthLimit,JavaScriptSerializer 序列化程序) depthLimit,JavaScriptSerializer 序列化程序)在 System.Web.Script.Serialization.JavaScriptSerializ er.Deserialize(JavaScriptSerializer 序列化程序,字符串输入,类型类型,Int32 depthLimit)在 System.Web.Script.Serialization.JavaScriptSerializ er.Deserialize[T](字符串输入) 在 System.Web.Script.Services.RestHandler.GetRawParam 的 System.Web.Script.Services.RestHandler.GetRawParam sFromPostRequest(HttpContext context, JavaScriptSerializer 序列化程序) System.Web.Script.Services 的(WebServiceMethodData methodData, HttpContext context)。 RestHandler.ExecuteWebS erviceCall(HttpContext context, WebServiceMethodData methodData)"

ExceptionType:"System.ArgumentException"

方法是:

[WebMethod]
   public static  ParentDataT_book.OptionBook[] SearchNameBook(string nameBook, int state)
   {
       var bookBusiness = new T_bookBusiness();
       return bookBusiness.GetList(nameBook, (byte)0).ToArray();
    }

jquery ajax 代码是:

function searchBook() {
          j.ajax({
              type: "POST",
              url: "Default.aspx/SearchNameBook",     //نام صفحه و متد
              data: "{'nameBook': '" + j('#ContentPlaceHolder1_txt_nameBook').val() + "', 'state': '" + j('#states').val() - 1 + "'}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function (msg) {
                  var delay = function () {
                      AjaxSucceededSearch(msg);
                  };
                  setTimeout(delay, 1500); //remove this
              },
              error: AjaxFailedSearch
          });
          //});
      };
      // });
      function AjaxSucceededSearch(data) {
          if (result.d != null) {
              alert("data is  found!!!");
          }
          else
              if (result.d == null) {
                  alert("data is  not found!!!");
              }
      }
      function AjaxFailedSearch(result) {
          alert(result.status + ' ' + result.statusText);
      }

朋友们知道问题出在哪里吗?

【问题讨论】:

  • 在控制台中显示此消息:“NetworkError: 500 Internal Server Error - localhost:1036/WebSite_DadVaSetad/Default.aspx/SearchNameBook”。
  • 使用 IinternetExplorer 的 F12 工具/“网络”,您可以检查您发送到服务器的 JSON 是否正确。此外,您可以尝试删除状态值的 ',如 'state':" + j('#states').val() - 1 + "}",以便将其序列化为数字
  • 我使用这个代码:data: { nameBook: j('#ContentPlaceHolder1_txt_nameBook').val(), state: (parseInt(j('#states').val()) - 1) .我的浏览器是firefox。我里面有firebug。可以用firebug吗?
  • 当然,使用 Firebug 中的“网络”面板并重新加载您的页面。然后,您应该会看到对您的页面发出的所有请求。
  • 不确定我是否理解你。看看这个:wiki.openiam.com/display/IAMSUITEV3/… 这应该可以帮助您检查您发布到服务器的内容

标签: c# jquery ajax json


【解决方案1】:

最终代码为:

  function searchBook() {
        var stateVal = (parseInt(j('#states').val()) - 1);
        var nameBookkVal = j('#ContentPlaceHolder1_txt_nameBook').val();
        j.ajax({
            type: "POST",
            url: "Default.aspx/SearchNameBook",     //نام صفحه و متد
            data: "{'nameBook':'"+nameBookkVal+"','state':'"+stateVal+"'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (result) {
                var delay = function () {
                    AjaxSucceededSearch(result);
                };
                setTimeout(delay, 1500); //remove this
            },
            error: AjaxFailedSearch()
        });
        };
  function AjaxSucceededSearch(result) {
        if (result.d != null) {
            alert("data is  found!!!");
        }
        else
            if (result.d == false) {
                alert("data is not  found!!!");
            }
    }
    function AjaxFailedSearch(jqXhr, textStates , errorThrown) {
       // alert(errorThrown + ' ' + textStates);

    }

注意:我删除了数据行中的空格字符。现在 此代码工作正常。感谢您的回答。

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多