-3

我收到这样的错误,$ajax 不工作

<script type="text/javascript">   
$(document).ready(function () {
  $("#btnsubmit").click(function () {
    $.ajax({
      type: "POST",
      url: "loginform.aspx/getdataval",
      data: "{'uname':'" + $("#TextBox1").val() + "','passwod':'" + $("#TextBox2").val() + "'}",
      contentType: "application/json;charset=utf-8",
      dataType: "json",
      success: function (msg) {
        alert("welcome");
        AjaxSucceeded(msg);
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert("what is the problem")
      }

    });
  });
});

function AjaxSucceeded(result) {
  alert(result.d);
  var Emp = result.d;
  $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>');
}
</script>

$ajax 不是函数为什么?当我运行这个脚本时,我得到错误,它没有运行,是什么问题?

谢谢

4

1 回答 1

0

您可能对数据字符串上的单引号/双引号有疑问,因为 JSON 标准说双引号。
您还可以简化 contentType。
我倾向于通过包含转换器和使用 ajaxSetup 的 ajax 本身来简化我在 asp.net 中对 .d 的使用:(请注意,由于该语法,使用这样的转换器在 jQuery 1.5 forward 中有效。随意重构如果您愿意,可以使用 ajaxSetup,但我发现它对我有帮助,因为当我有多个 ajax 调用时,我只需执行一次。)

$(document).ready(function() {
    $.ajaxSetup({
        data: "{}",
        dataType: "json",
        type: "POST",
        contentType: "application/json",
        converters: {
            "json jsond": function(msg) {
                return msg.hasOwnProperty('d') ? msg.d : msg;
            }
        },
        error: function(xhr, textStatus, errorThrown) {
            var errorMessage = "Ajax error: " + this.url
                 + " : " + textStatus + " : " + errorThrown 
                 + " : " + xhr.statusText + " : " + xhr.status;
            alert(errorMessage);
            if (xhr.status != "0" || errorThrown != "abort") {
                alert(errorMessage);
            }
        }
    });
    $("#btnsubmit").click(function() {
        var pString = '{"uname":"' 
             + $("#TextBox1").val() + '","passwod":"' 
             + $("#TextBox2").val() + '"}';
        $.ajax({
            url: "loginform.aspx/getdataval",
            data: pString,
            success: function(msg) {
                alert("welcome");
                AjaxSucceeded(msg);
            }
        });
    });
});

// converter gives us the result instead of the .d here
function AjaxSucceeded(result) {
    alert(result);
    var Emp = result;
    $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>');
}

编辑:从 jQuery 1.9 开始,您应该像这样绑定 ajax 设置:

 $(document).ajaxSetup({..more code
于 2012-06-19T12:15:27.480 回答