从onclick调用时,$ .ajax无效

时间:2012-04-10 17:28:13

标签: javascript jquery ajax

当我从控制台调用AA.sendRequest()时,我的代码工作正常,但是当我从onclick调用它时,我的代码工作正常:

<a href="/b/Technology" onclick="AA.sendRequest()">Technology</a>

由于某种原因,它会进入错误功能。

textStatus =“error” errorThrown =“”


这是一个非常基本的测试:

<!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>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="assets/AA.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<a href="login.php" onclick="AA.sendRequest('id');">login</a>
</body>
</html>

使用Javascript:

// JavaScript Document

var AA;
AA = (function() {
    function AA() {}




    // Request functions
    function sendRequest(){}
    AA.sendRequest = function(id){


        $.ajax({
            url: "login.php",
            type: "GET",
            dataType: "text",

            success: function(data){
                alert("yay");


            },
            error: function(jqXHR, textStatus, errorThrown){
                alert("status:"+textStatus+", "+errorThrown);
            }
        });
        return false;
    }


    return AA;
})();

1 个答案:

答案 0 :(得分:2)

如果没有上下文,很难确定您要完成的任务。但是,以下内容应该有效:

var AA = {};
AA.sendRequest = function(id){
  $.ajax({
    url: "/ajaxPage/b/Technology",
    type: "GET",
    dataType: "text",
    success: function(data){
      alert("yay");
    },
    error: function(error){
      alert(error);
    }
  });
  return false;
};

在您的HTML中:

<a href="/b/Technology" onclick="AA.sendRequest('someId')">Technology</a>