【问题标题】:How to avoid automatic page reload after XMLHttpRequest call?如何避免 XMLHttpRequest 调用后自动页面重新加载?
【发布时间】:2012-12-22 20:37:54
【问题描述】:

我知道这有点自相矛盾,因为 XMLHttpRequest 不应该重新加载页面,这就是它的全部意义所在。

在 Chrome 最新版本、iOS 上的 Safari 和 Android 上进行了尝试。结果都一样。

我正在通过它发送一个带有文件的表格。效果很好,目标站点正确接收数据并显示它。发回 200,“OK”。 (这是脸书)

但是我的页面会自动重新加载。就像我使用 HTML 表单和提交按钮提交表单一样。 (这是我原来的问题)

这是我的做法,来自 Javascript

// Get the form element
var formData = new FormData(document.getElementById("photosubmitform")); 

var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://graph.facebook.com/' + facebookWallId + '/photos', false);
xhr.onload = function(event)
{
    var json = xhr.responseText; // Response, yay!
}
xhr.send(formData); // Sending it, will reload the page on success...

【问题讨论】:

    标签: javascript facebook html xmlhttprequest


    【解决方案1】:

    观察表单中的按钮点击时使用event.preventDefault()

    【讨论】:

      【解决方案2】:

      您是否有可能通过提交表单来触发此操作?如果您不在 onsubmit 处理程序中return false,表单仍将被提交。

      【讨论】:

      • 有效!像这样将它添加到
        标记中:
        谢谢!
      • 我不知道通过 xhr 发送表单会触发表单。
      • 太棒了!谢谢你,让我开心。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      相关资源
      最近更新 更多