fetchlib.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var submit = function (url, data) {
  2. // create a form
  3. var form = document.createElement('form');
  4. form.method = 'POST';
  5. form.action = url;
  6. form.style.display = 'none';
  7. // add the form data to the form
  8. for (var key in data) {
  9. var input = document.createElement('input');
  10. input.type = 'hidden';
  11. input.name = key;
  12. input.value = data[key];
  13. form.appendChild(input);
  14. }
  15. // submit the form
  16. document.body.appendChild(form);
  17. form.submit();
  18. }
  19. var toFormData = function (obj) {
  20. var formData = new FormData();
  21. for (var key in obj) {
  22. formData.append(key, obj[key]);
  23. }
  24. return formData;
  25. }
  26. var fetchPHP = async function (url, data = {}) {
  27. return response = await fetch(
  28. url,
  29. { method: 'POST', body: toFormData(data) }
  30. )
  31. .then(response => {
  32. try {
  33. return response.json()
  34. }
  35. catch (e) {
  36. var message = 'Error en la respuesta del servidor';
  37. Promise.reject(message)
  38. }
  39. })
  40. .then(response => response.error ? Promise.reject(response.error) : Promise.resolve(response))
  41. }