2015-09-28 13 views
6

Ich mache einen Ajax Anruf zu einem Backend-Rest-API, die API ist gut zurück. Wenn ich console.log() die Erfolgsdaten und Fehlerdaten, gibt es "Ressource angemeldet", 200 ok auf der Konsole, aber wenn ich es in der Netzwerk-Registerkarte Antwort für diese Auth/Login-Route anzeigen, zeigt es "Fehler beim Laden die Antwortdaten ". Und das passiert manchmal nur und nicht immer. Warum? Hier ist der Ausschnitt meines Ajax Anrufs.Ajax Antwort 200 ok, aber zeigt nicht geladen Antwortdaten

ajax 
    .post('auth/login', { 
      data: { 
       oauth_provider: 'google', 
       oauth_token: (isToken ? authResult : authResult.access_token) 
       }, 
      cache: false 
      }) 
      .done(function(data) { 
      console.log(data); // Resource Logged in 
      }) 
      .error(function(err){ 
      console.log(err); 
      }) 

Hier ist der Inhalt meiner ajax.js

define(
    [ 
    'jquery', 
    'util', 
    ], 
    function ($, util) { 
    var ajax = { 
     request: function (type, url, options) { 
     if (url.indexOf('http') === -1) { 
      url = util.url(url); 
     } 

     if (options === undefined) { 
      options = {}; 
     } 

     options.type = type 
     options.url = url; 

     return $.ajax(options); 
     }, 

     get: function (url, options) { 
     return ajax.request('GET', url, options); 
     }, 

     post: function (url, options) { 
     return ajax.request('POST', url, options); 
     }, 

     put: function (url, options) { 
     return ajax.request('PUT', url, options); 
     }, 

     delete: function (url, options) { 
     return ajax.request('DELETE', url, options); 
     } 
    }; 

    return ajax; 
    } 
) 

enter image description here enter image description here

+1

Typischerweise wird dies aus der Antwort, weil es blockiert ist eine domänenübergreifende Anfrage. Ist Ihre Seite der AJAX-Inhalt auf demselben Server? – scunliffe

+0

Ja, es ist auf demselben Server. Ich benutze Nginx. –

+0

Mögliches Duplikat von [Chrome-Entwicklungstools zeigt keine Antwort an, auch wenn der zurückgegebene Inhalt Header hat Content-Type: text/html; charset = UTF-8] (https://stackoverflow.com/questions/38924798/chrome-dev-tools-fails-toshow-response-even-the-content-returned-has-header-con) – dhilipsiva

Antwort

3

Anscheinend es stellt sich heraus, dass ein Problem mit der Lichtung gibt es die Kekse. Beim Aufräumen verhält sich das System gut. Nicht sicher, brauche Hilfe!

1

Ich bestätige dies. Seit Chrome Version 45 und ich sehe einige meiner Ajax-Anfragen 200 als Statuscode, aber ein Problem beim Anzeigen des Inhalts "Fehler beim Laden von Inhalt".

Meine Ajax-Anfragen sind innerhalb der for-Schleife, fordern Sie die fehlgeschlagenen Inhalte erneut macht den Inhalt geladen werden fein.

Es scheint zu lösen, dass innerhalb der for-Schleife setTimeout zwischen Anfrage und der anderen verwendet wird.

-1

Wegen Postback passierte das in meinem Projekt. Als ich das Postback-Problem gelöst habe, ist der Fehler verschwunden.

Verwandte Themen