Ich möchte einen Ajax-Aufruf vom Client zum Backend machen. Ich bekomme einen erfolgreichen Anruf von der Erfolgsfunktion, allerdings kann ich nicht nachvollziehen wie ich Daten vom Server bekomme um vom Client zurück zu kommen.AJAX-Aufruf und Erhalten von Rückgabedaten im Knoten
zur Zeit mein Fehler versucht res.send zu verwenden ist:
Error: Can't set headers after they are sent.
AJAX
function getProfessorResults() {
var textData = $('#inputsm').val();
var data = {user:"[email protected]"};
$.ajax({
url: 'http://localhost:3000',
data: { theme: "somevalue", snippet: { name: "somename", content: "somevalue" } },
method: 'POST',
async: false,
cache: false,
timeout: 5000,
contentType: "application/json",
success: function(data) {
console.log("success");
},
complete: function(data) {
console.log("completed");
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error connecting to the Node.js server... ' + textStatus + " " + errorThrown);
}
});
}
JS Backend
exports.home = function(req, res) {
function passList(profArray, callback) {
setTimeout(function() {
callback(profArray);
}, 1000);
}
function getProfs(teacher_name, successCallback) {
google.resultsPerPage = 10
var nextCounter = 0
google(teacher_name, function (err, res){
if (err) console.error(err)
var teacher_results = []; //Hold all the teachers returned from the function
for (var i = 0; i < res.links.length; ++i) {
var link = res.links[i];
if (!link.title.includes('Add') || !link.title.includes('RATINGS') || !link.title.includes("Hint")) {
teacher_results.push(link.title);
}//End if for comparisons ||
} //End For
successCallback(teacher_results);
}); //End google function
teacher_results = ['tester1', 'tester2'];
successCallback(teacher_results);
} //End searchForProfessor
getProfs(teacher_name, function(data) {
prof_list = data;
console.log(prof_list);
return true;
});
if (req.method == 'POST'){
console.log("true");
// dataReceived = JSON.parse(req);
// console.log(dataReceived);
var obj = {
tid: 'ryan'
};
res.send(JSON.stringify(obj));
}
res.render('home', {
profs: prof_list,
dataStuff : dataReceived
});
};
'return' wohin? Müssen Sie mehr über Server-Code-Kontext wissen – charlietfl
Angenommen, ich rufe eine Methode auf der Serverseite. Ich möchte die Daten vom Server zurückgeben, sagen wir eine Zeichenfolge von Daten oder JSON obj, zurück zum Client, damit ich es auf meine Vorlage werfen kann. – CuriousFellow
Sie müssen mehr von Ihrem JS Backend-Code einbeziehen. – JAM