如何避免在 XMLHttpRequest 调用后自动重新加载页面?

How to avoid automatic page reload after XMLHttpRequest call?(如何避免在 XMLHttpRequest 调用后自动重新加载页面?)
本文介绍了如何避免在 XMLHttpRequest 调用后自动重新加载页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I know this is a bit paradoxal because XMLHttpRequest shouldn't be reloading the page, and it's the whole point of it.

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

Tried in Chrome latest version, Safari on iOS and on an Android. All same result.

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

I am sending a form through it, with files. Works great, the destination site receive correctly the data, and displays it. Sends back a 200, "OK". (It's facebook)

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

But then my page reloads automatically. Just like if I submitted the form using HTML form and a submit button. (Which was my original problem)

这是我的做法,来自 Javascript

Here is how I do it, from 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...

推荐答案

您是否有可能通过提交表单来触发此问题?如果您不在 onsubmit 处理程序中return false,表单仍然会被提交.

Any chance you're triggering this by submitting a form? If you don't return false in the onsubmit handler, the form will still be submitted.

这篇关于如何避免在 XMLHttpRequest 调用后自动重新加载页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)