有谁知道如何将这个jQuery翻译成普通的js?

时间:2017-04-07 21:24:24

标签: javascript jquery html ajax cordova

所以我在我的cordova应用程序上有一个电子邮件发送功能,它使用jQuery来完成它。在调试我的应用程序时,ajax功能在我的浏览器中进行测试时工作正常,但是当我构建应用程序并在我的手机上测试它时它不起作用。我有另一个像这样的问题只有在使用普通的js而不是jQuery时才能解决。这是功能:

var message = localStorage.getItem("Message");
var key = "dJdJekCVAFIqvUJ13DEczZjgIh_4MyeIGEHz2GBYKFe"; // <<KEY
var message_name = "defender_send_message";    // <<MESSAGE NAME
var url = "https://maker.ifttt.com/trigger/" + message_name + "/with/key/" + key;
$.ajax({  // <<SEND
  url: url,
  data: {value1: message,
         value2: localStorage.getItem("AdminsEmail")},
  dataType: "jsonp",
  complete: function(jqXHR, textStatus) {
    console.log("Message Sent");
  } 
});  

有谁知道如何将其翻译成普通的js?谢谢

1 个答案:

答案 0 :(得分:2)

您需要使用XMLHttpRequest对象使用vanilla JS进行ajax调用。

var message = localStorage.getItem("Message");
var key = "dJdJekCVAFIqvUJ13DEczZjgIh_4MyeIGEHz2GBYKFe";
var message_name = "defender_send_message";
var url = "https://maker.ifttt.com/trigger/" + message_name + "/with/key/" + key;
var data = {};

data.value1 = message;
data.value2 = localStorage.getItem("AdminsEmail");

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == XMLHttpRequest.DONE) {
    if (xmlhttp.status == 200) {
      console.log("Message Sent");
    }
  }
}

xmlhttp.open('POST', url, true);
xmlhttp.responseType = 'jsonp';
xmlhttp.send(data);