0

我有一个似乎没有做任何事情的 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
    }
});

谢谢

4

3 回答 3

4

试试这个:

$.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");
于 2012-10-31T20:35:13.353 回答
2

尝试将 cachekiller 放在数据参数上

$.ajax({
    url: 'ajax.php',
    data: {
        cachekiller: (new Date()).getTime(),
        action: 'doLogin'
    },
    success: function() {
    // Not being called
    },
    error: function() {
    // Not being called either
    }
});
于 2012-10-31T20:15:40.877 回答
1

好的,一切似乎都很好,这里有一些你可以检查的东西

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

你不需要使用 ajax 方法的 cachekiller 使用cache:falseprop

于 2012-10-31T20:30:13.170 回答