uploadajax.js 918 B

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