javascript - XMLHttpRequest 的状态为 200,但 responseText 为空

标签 javascript xmlhttprequest

我正在创建一个 XMLHttpRequest 来上传图像文件。我可以看到状态为 200,并且我的图像正在上传到我的服务。但是,当我使用下面的代码获取responseText(其中应包含图像的URL、文件名、时间戳、图像尺寸等信息)时,它会以空字符串的形式返回:

  //...

  const data = new FormData();
  data.append('file', props);
  data.append('upload_preset', uploadPreset);
  data.append('api_key', apiKey);

  const xhr = new XMLHttpRequest();
  xhr.open('POST', cloudinaryURL, true);
  const sendImage = xhr.send(data);
  const imageResponse = xhr.responseText;
  console.log('Response: ', imageResponse);

将其打印到控制台:

Response:  

知道为什么会发生这种情况/如何解决这个问题吗?

谢谢!!

最佳答案

您正在异步模式下使用 XMLHttpRequest:

xhr.open('POST', cloudinaryURL, true);

但是您的代码是为同步模式设计的:

xhr.open('POST', cloudinaryURL, false);

在异步模式下,xhr.send()将立即返回,而不实际处理请求。因此,当您尝试访问时,xhr.responseText 尚未填充。

关于javascript - XMLHttpRequest 的状态为 200,但 responseText 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38526994/

相关文章:

javascript - 在同一个异步函数/定时器重置中使用多个setTimeout

javascript - 响应XML为空,javascript

javascript - 异步请求 Web 资源的特定部分

javascript - 通过 Google 标签管理器 Ajax POST XMLHttpRequest 到 DataLayer

javascript - 在用户脚本中使用 XMLHttpRequest 下载图像

Javascript JSON 解析后不起作用

javascript - TinyMCE 隐藏 Div 的占位符

javascript - HTML - 通过按同一行内的按钮获取行 ID

json - 使用 angular http.post 方法发布 - xmlhttprquest 无法加载服务

javascript - 提交按钮不提交