2017-11-20 3 views
1

Ich habe ein Problem, bei dem ich denke ist die falsche URL abfragen, bevor Abfrage gesendet wird.Axios false 404 Fehler

getShows : function(){ 
    if(! this.query) return false; 
    var getURL = this.makeUrlFromObject(this.query); 
    console.log('getURL', getURL); 
    var self = this; 
    axios.get(getURL).then(function(response){ 
    console.log('response.data', response.data) 
    self.shows = response.data; 
    }); 
}, 
makeUrlFromObject : function(query){ 
    var queryArray = []; 
    for (var prop in query) { 
    if(!query.hasOwnProperty(prop)) continue; 
    queryArray.push(prop + "=" + query[prop]); 
    } 
    var url = this.apiUrl + '?' + queryArray.join('&'); 
    return url; 
}, 
... 

Ausführen der getShows gibt die folgenden in der Konsole:

1. getURL /api/all?date=20180131 

2. GET http://website.dev/shows/false 404 (Not Found)      false:1 

3. response.data (3) [{…}, {…}, {…}] 

Ich kann nicht für die Diagnose scheinen, wo diese false:1 herkommt. Die Anfrage und die Antwort funktionieren beide, nur diese zusätzliche Anfrage scheint aus dem Nichts aufzutauchen.

+0

Was ist der Inhalt von 'this.query'? –

+0

@DominicTobias ist ein Schlüsselwertobjekt mit der aktuellen URL-Abfragezeichenfolge, d. H. Wenn Sie sich auf einer URL mit '? Age = 10 'befinden, wäre dies' {age: 10} ' – Djave

Antwort

0

Ich bin ein Idiot. Nach der Ajax-Anfrage wird ein Bildelement auf der Seite erstellt.

Die Antwort (nicht gezeigt) umfasste eine Bilddatei, die in 2 der 3 Objekte geladen wurde. Die 3. hatte kein Bild, so kam es als { image : false } zurück.

Wenn diese dann eine Bildvorlage erstellen verwendet wurden, es kam zurück wie:

<div style="background-image:url(false)"> 

So ist die Konsole kam mit einer Get-Anforderung zurück für ‚falsch‘, die 404D.