jQuery $ .ajax没有做任何事情

时间:2012-10-31 20:06:27

标签: javascript jquery

我有一个似乎没有做任何事情的jQuery AJAX请求。

我在Chrome调试器的“网络”标签上看不到任何操作,

错误/成功回调没有在函数内部调用,似乎没有任何东西在服务器端发生。

问题是,我的主要本地域名没有发生这种情况:http://dev.sitename.com

它只发生在我的内页上,例如:http://dev.sitename.com/about

我的猜测是有一些.htaccess规则会破坏这个过程,但我认为没有网络活动,所以它怎么可能呢?

这是我的代码:

$.ajax({
    url: 'ajax.php?cachekiller=' + (new Date()).getTime(),
    data: {
        action: 'doLogin'
    },
    success: function() {
    // Not being called
    },
    error: function() {
    // Not being called either
    }
});

谢谢

3 个答案:

答案 0 :(得分:3)

试试这个:

$.ajax({
  url: 'ajax.php',
  cache: false,
  data: {
      action: 'doLogin'
  },
  success: function(data) {
      console.log(data);
  },
  error: function() {
      console.log('error');
  }
});

并在ajax.php脚本中:

header("Pragma: no-cache");
header("Cache-Control: must-revalidate");
header("Cache-Control: no-cache");
header("Cache-Control: no-store");
header("Expires: 0");

答案 1 :(得分:1)

尝试将cachekiller放在数据参数上

$.ajax({
    url: 'ajax.php',
    data: {
        cachekiller: (new Date()).getTime(),
        action: 'doLogin'
    },
    success: function() {
    // Not being called
    },
    error: function() {
    // Not being called either
    }
});

答案 2 :(得分:1)

好的每件事似乎都没问题,这里有一些你可以查看的东西

  1. (可能看起来很离谱)你是否包含了jQuery.js
  2. 确保jQuery.js包含在任何其他js文件之前
  3. /之前添加url,并确保已将ajax.php放置在服务器的根目录
  4. 如评论中所述检查firebug控制台(firefox)或chrome开发人员工具中的任何js错误
  5. $.ajax({
            url: '/ajax.php',
            cache:false,
            data: {
                action: 'doLogin'
            },
            success: function() {
            // Not being called
            },
            error: function() {
            // Not being called either
            }
        });
    

    你不需要使用cachekiller使用ajax方法的cache:false道具