Frage

Ich bin frustriert soooo ...

Ich habe eine jQuery-Funktion, um Listendaten zu greifen, und wenn ich "Daten" anmelden, sehe ich das Full {d} mit einem {ergebnisse}, das alle Listenelemente hält.Wenn ich es jedoch durch eine $ -An-Funktion ausführen kann, um eine Zeichenfolge zu erhalten, kann ich zurückkehren, wenn ich RSP protokollierte, sagt der Debugger "eine leere Zeichenfolge".

Hier ist meine Funktion: generasacodicetagpre.

Ich gehe verrückt und würde jeden Rat oder Korrekturen erkennen.Vielen Dank im Voraus.

War es hilfreich?

Lösung

$.ajax perform an asynchronous HTTP (Ajax) request. That means sending the request (or rather receiving the response) is taken out of the normal execution flow.

In your example, return rsp is executed before the function you passed as success callback was even called.

Solutions

There are basically two ways how to solve this:

  • Make the AJAX call synchronous.
  • Restructure your code to work properly with callbacks.

Please refer How to return the response from an AJAX call? for a more details

Below is demonstrated the modified version with callback usage:

function get_news(result){
    var rsp = '';
    $.ajax({
        url: "http://edrdbdev/_api/web/lists/GetByTitle('Latest News')/items",
        type: "GET",
        headers: { "accept" : "application/json;odata=verbose" },
        success: function(data){
            console.log(data);
            $.each(data.d.results, function(index, item){
                rsp +=  "<p>" + item.Title + "</p>"
            });
            result(rsp);    
        },
        error: function(error){
            result(JSON.stringify(error));
        }
    });    
} 



//Usage
get_news(function(content){
    console.log(content);
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top