$ .ajax不起作用

时间:2010-05-25 04:50:35

标签: ajax jquery

在我的网页上有一个文本框来获取扫描的条形码值。一旦我们扫描条形码,就必须从数据库中获取详细信息。我正在为文本框创建更改事件。

问题:$ .ajax无效。

代码:

    var target = $('#txtBarcode'), val = target.val();
        target.change(monitor());
        function monitor() {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                data: "{}",
                url: "HomePage.aspx/SearchProduct",
                dataType: "json",
                success: function(data) {
                alert("Success!!!");
                }
            });
        }

3 个答案:

答案 0 :(得分:3)

您正在尝试将'monitor'传递给更改方法,但实际上是在调用它。它应该看起来像这样(没有parens)

var target = $('#txtBarcode'), val = target.val();
        target.change(monitor);
        function monitor() {

您也可以始终将其声明为内联:

 var target = $('#txtBarcode'), val = target.val();
        target.change(
             function() {
                 $.ajax({
                  type: "POST",
                  contentType: "application/json; charset=utf-8",
                  data: "{}",
                  url: "HomePage.aspx/SearchProduct",
                  dataType: "json",
                  success: function(data) {
                             alert("Success!!!");
                           }
                 });
             });

答案 1 :(得分:1)

  1. 添加错误处理程序。
  2. 确保您的相对网址是正确的。
 $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: "{}",
            url: "HomePage.aspx/SearchProduct",
            dataType: "json",
            success: function(data) {
            alert("Success!!!");
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
              // ...
            }
        });

编辑:Dan对你的变革处理程序是对的。

答案 2 :(得分:0)

你可以复制这里发布的一些答案,其中至少有一个可能有用,但你不会对原因有所了解。这是另一种方式:

  1. 由于您使用asp.net,请将断点放在HomePage.aspx / SearchProduct的第一行。这可以确保请求转到服务器上的正确URL。

  2. 逐步完成此方法以确保不会抛出任何异常。

  3. 使用FireFox并安装Firebug(即使您针对IE并且无意使其在FF上运行)。您可以检查http响应。
  4. 除成功处理程序外,还添加错误处理程序。