2013-03-11 32 views
7

Đây có thể là một câu hỏi đơn giản nhưng tôi chưa tìm được cách sắp xếp nó. Tôi muốn tải xuống tệp csv từ máy chủ (được triển khai bởi ASP.NET Web API) bằng cách gọi ajax:Cách thêm Tiêu đề Chấp nhận với văn bản/csv trong jQuery ajax

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

Tôi đã đặt tiêu đề Accepts trong jQuery ajax như trên. Nhưng từ cáy, tôi thấy:

enter image description here

Các Chấp nhận tiêu đề hiện nay quay sang Accept: undefined. Nếu tôi cố gắng đưa:

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

Các Chấp nhận Tiêu đề hiện nay quay sang: Accept: */*

enter image description here

Vì vậy, tôi đoán đó là điểm chính để làm cho máy chủ của tôi trả về đối tượng JSON chứ không phải là tập tin CSV.

Làm cách nào để có thể thực hiện Chấp nhận tiêu đề trong jQuery ajax một cách chính xác? và xem trong fiddler nên là: Accept: text/csv

Tôi đang sử dụng Chrome.

Trả lời

6

thử

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

Cảm ơn, nó hoạt động. Nhưng tôi không hiểu tại sao hai lựa chọn tôi đưa ra không hoạt động –

3

Mặc dù câu trả lời của dakait là đúng, tôi sẽ làm sạch nó lên và đưa ra một lời giải thích.

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

Trong ví dụ trên, chúng tôi đang đặt rõ ràng hai tiêu đề.

Tôi nghĩ điều đang xảy ra là jQuery có logic riêng để xử lý các tiêu đề Chấp nhận và Loại nội dung, dựa trên các trường accepts (không Chấp nhận) và trường dữ liệu. Vì vậy, nếu kiểu dữ liệu là trống, (đó là vì csv không phải là một kiểu dữ liệu được hỗ trợ), nó sẽ loại bỏ tiêu đề Chấp nhận ngay cả khi bạn đặt tiêu đề Chấp nhận hoặc chấp nhận tham số.

Nó không có vẻ là một giao diện trực quan, nhưng nó hoạt động tốt cho nhiều người. Tôi nghĩ rằng nếu tài liệu hướng dẫn tốt hơn nó sẽ gây ra ít nhầm lẫn hơn.

Các vấn đề liên quan