如何在向admin-ajax.php发送请求后停止被定向到admin.php

时间:2015-08-05 作者:danhardman

在我的插件管理页面上,我向管理员ajax发出了一个ajax请求。php。出于某种原因,一旦发出请求,就会向管理员发出另一个请求。php引导我离开当前页面。。。

以下是我的javascript:

  var request = new XMLHttpRequest();
  request.open(\'POST\', ajaxurl, true);
  request.setRequestHeader(\'Content-Type\', \'application/x-www-form-urlencoded; charset=UTF-8\');

  request.onload = function() {
    if (request.status >= 200 && request.status < 400) {
      // Success!
      document.getElementById(\'messages\').innerHTML = \'<p>\' + request.responseText + \'</p>\';
    } else {
      document.getElementById(\'warnings\').innerHTML = \'<p>\' + request.responseText + \'</p>\';
    }
  };
  request.send(serialise(data));
该请求工作正常,它会命中我的回调,并将相关数据传递回页面。然而,我几乎立即向管理员发出了一个单独的请求。php自动生成,它引导我远离当前页面。

requests

正如您所看到的,对管理员的请求。php接受传递给管理员ajax的参数。php,不包括表明正在提交我从中获取输入的表单的操作,即使is没有提交按钮。

<form id="add-property-form">
  [all my inputs]
  <button onClick="addProperty()">Add property</button>
</form>

1 个回复
SO网友:danhardman

据怀疑,Wordpress将按钮视为type="submit" 通过执行以下操作修复:

<button type="button" onClick="addProperty()">Add property</button>

结束

相关推荐

#PUBLISH上的AJAX函数只保存为草稿--如何将其发布?

我有一个称为“轮班”的自定义岗位类型(如员工轮班)。发布班次时,我运行一个Ajax函数来检查班次是否没有调度冲突。如果存在计划冲突,将弹出一个对话框,提醒用户冲突并询问他们是否要继续。如果他们选择“取消”,则不会发布帖子。如果他们选择“继续”,则发布帖子。问题是:如果他们选择“继续”,帖子将保存为草稿,而不是发布。当他们单击“发布”按钮时,我如何发布帖子?以下是JS(简化了一点,以便您可以看到重要部分):$(\'#publish\').on(\'click\', function (e) { &#