2013-03-11 5 views
7

Dies könnte eine einfache Frage sein, aber ich habe noch nicht den Weg gefunden, um es zu sortieren. Ich möchte CSV-Datei vom Server durch Ajax-Aufruf (von ASP.NET Web API implementiert) zum Download:Wie Accept Header mit Text/CSV in jQuery Ajax hinzufügen

$.ajax({ 
    type: "GET", 
    accepts: "text/csv; charset=utf-8", 
    url: "/api/employees", 
    success: function (data) { 
    } 
}); 

Ich habe setzen die Header in jQuery Ajax akzeptiert wie oben. Aber von Fiedler, ich sehe:

enter image description here

Der Akzeptiert Kopf wendet sich nun Accept: undefined. Wenn ich zu setzen versuchen:

accepts: { 
     csv: "text/csv; charset=utf-8" 
    } 

Der Akzeptiert Kopf wendet sich nun: Accept: */*

enter image description here

Also ich denke, dass die Hauptsache ist mein Server liefert JSON-Objekt eher als CSV-Datei zu machen.

Wie kann ich Accepts Header in jQuery Ajax richtig machen? und sehen in der fiddler sollte sein: Accept: text/csv

Ich benutze Chrome.

Antwort

6

versuchen

$.ajax({ 
    headers: { 
     Accept : "text/csv; charset=utf-8", 
     "Content-Type": "text/csv; charset=utf-8" 
    } 
... 
+5

Danke, es funktioniert. Aber ich verstehe nicht, warum zwei Optionen, die ich gab, nicht funktionierten –

3

Obwohl Antwort des dakait korrekt ist, werde ich es aufzuräumen und eine Erklärung bieten.

$.ajax({ 
    url: '/path', 
    headers:{ 'Accept': 'text/csv', 
      'Content-Type': 'text/csv' }, 
    ... 

Im obigen Beispiel setzen wir explizit die zwei Header.

Ich denke, was passiert ist, dass jQuery hat seine eigene Logik zu Accept und Content-Type-Header, basierend auf accepts (nicht akzeptieren) und dataType Felder.

Wenn also dataType leer ist (was wäre, weil csv kein unterstützter dataType ist), unterdrückt es den Accept-Header, selbst wenn Sie Accept header setzen oder param akzeptieren.

Es scheint nicht eine intuitive Schnittstelle zu sein, aber es funktioniert gut für viele Menschen. Ich denke, wenn die Dokumentation besser wäre, würde das weniger Verwirrung stiften.

Verwandte Themen