2017-04-07 5 views
1

So habe ich eine E-Mail-Sende-Funktion auf meiner Cordova App und es verwendet jQuery, um es zu tun. Beim Debuggen meiner App funktioniert die Ajax-Funktion beim Testen in meinem Browser einwandfrei, aber wenn ich die App erstelle und sie auf meinem Smartphone ausprobiere, funktioniert sie nicht. Ich hatte ein anderes Problem wie dieses, das nur behoben wurde, sobald ich normale js anstelle von jQuery verwendete. Hier ist die Funktion:Kann jemand diese jQuery in normale js übersetzen?

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"); 
    } 
}); 

Wer weiß, wie es zu übersetzen in der normalen js? Danke

+0

Meinst du "statt jQuery"? AJAX ist eine allgemeine Technik, nicht etwas, das für Code spezifisch ist. – Barmar

+0

@Barmar Ja ich denke, ich benutze nicht viel jQuery und nicht die richtige Terminologie. Ich bearbeite meinen Beitrag jetzt – sparpo

+1

Sie sollten wahrscheinlich versuchen herauszufinden, warum jQuery in Ihrer App nicht funktioniert. Das Umschreiben von allem, was es benutzt, wird wahrscheinlich eine große Aufgabe sein. – Barmar

Antwort

2

Sie müssen XMLHttpRequest Objekt verwenden, um einen ajax Aufruf mit Vanille JS zu machen.

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); 
+0

Würde der "url" -Wert der gleiche wie der ursprüngliche sein? Der Grund, den ich frage, ist, dass Sie nicht den "Schlüssel" -Wert – sparpo

+0

@sparpo verwendeten Ja, die URL ist die selbe. – Barmar

+0

Sie können kein Objekt mit 'xmlhttp.send' senden. Sie müssen die URL-Codierung durchführen, die jQuery normalerweise für Sie übernimmt. – Barmar

Verwandte Themen