uploadajax.js 859 B

12345678910111213141516171819202122232425262728293031
  1. export default function asyncUploadFile(option) {
  2. return new Promise(function (resolve, reject) {
  3. if (typeof XMLHttpRequest === 'undefined') {
  4. return
  5. }
  6. let xhr = new XMLHttpRequest()
  7. const action = option.action
  8. const formData = new FormData()
  9. formData.append(option.filename, option.file)
  10. xhr.open('post', action, true)
  11. xhr.onload = function () {
  12. //即使是404也会进入这个相应函数,所以需要检测状态
  13. if (xhr.status < 200 || xhr.status >= 300) {
  14. //完成未完成,返回错误
  15. reject(Error(xhr.statusText))
  16. } else {
  17. //完成,返回响应文本
  18. resolve(xhr.response)
  19. }
  20. }
  21. // 发生错误时的相应函数
  22. xhr.onerror = function () {
  23. reject(Error('Network Error'))
  24. }
  25. // 发送请求
  26. xhr.send(formData)
  27. })
  28. }