2017-04-16 1 views
0

Ich fordere einige JSON für eine Autocomplete-Funktion. Leider ist der JSON mit einem HTML-Span-Tag versehen. Dies geschieht aufgrund einer mangelhaften Backend-Bibliothek, die in VB geschrieben wurde und in den nächsten Monaten vom Betreiber nicht geändert wird. Also muss ich das HTML-Span-Tag auf andere Weise loswerden. Hier ist mein JS-Anruf und die Antwort:jQuery JSON Antwort ist in HTML verpackt

Es funktioniert hervorragend mit gut geformten JSON als Antwort. Aber meine Antwort sieht wie folgt aus:

<span id="fromContext"> 
{ 
    "results": [ 
    { 
    "headline": "headline text", 
    "summary": " <em>summary</em> result text", 
    "url": "/url/to/page", 
    "image": { 
     "url": "/media.jpg", 
     "alt": "media alt text" 
    }, 
    "count": "" 
    }, 
    { 
    "headline": "empty object" 
    } 
    ], 
"hasmore": true 
} 
</span> 

So würde ich in der Lage sein, die Spanne zu erkennen (weil es hat eine ID), aber ich weiß nicht, wie das JSON Teil der gesamten Reaktion auf Zugang mit der Ajax-Request . Ich denke, dieses Hauptproblem ist, dass der Ajax-Aufruf zu einem Fehler führt, weil die Antwort nicht JSON ist ... Irgendwelche Ideen, wie man dieses Problem löst?

Antwort

0

Sie könnten das ajax.dataType Attribut ändern auf "Text" und der content auf "text/plain"

contentType: "text/plain; charset=utf-8", 
    dataType: "text", 

und wandeln die Antwortzeichenfolge auf eine jquery Objekt

const $responseObject = $(response); 

und dann Sie können mit

let text = $responseObject.text(); 

auf den gültigen JSON zugreifen und ihn weiter verarbeiten.

Verwandte Themen