如何在jqueryajax中添加带有text/csv的Accept头

如何在jqueryajax中添加带有text/csv的Accept头,jquery,Jquery,这可能是一个简单的问题,但我还没有找到解决办法。我想通过ajax调用从服务器(由ASP.NET Web API实现)下载csv文件: $.ajax({ type: "GET", accepts: "text/csv; charset=utf-8", url: "/api/employees", success: function (data) { } }); 我已经在jQueryAjax中放置了Accepts头,如上所述。但从fiddler那里,我看到:

这可能是一个简单的问题,但我还没有找到解决办法。我想通过ajax调用从服务器(由ASP.NET Web API实现)下载csv文件:

$.ajax({
    type: "GET",
    accepts: "text/csv; charset=utf-8",
    url: "/api/employees",
    success: function (data) {
    }
});
我已经在jQueryAjax中放置了Accepts头,如上所述。但从fiddler那里,我看到:

Accepts标题现在变为
Accept:undefined
。如果我想说:

    accepts: {
        csv: "text/csv; charset=utf-8"
    }
Accepts标题现在变为:
Accept://*

所以我想这就是让我的服务器返回JSON对象而不是CSV文件的要点

如何在jQueryAjax中正确设置Accepts头?在小提琴手身上看到的应该是:
Accept:text/csv

我正在使用Chrome。

试试看

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

虽然dakait的回答是正确的,但我会整理一下并给出解释

$.ajax({
  url: '/path',
  headers:{ 'Accept': 'text/csv',
            'Content-Type': 'text/csv' },
  ...
在上面的示例中,我们显式地设置了两个头

我认为现在发生的事情是jQuery有自己的逻辑来处理Accept和Content-Type头,基于
Accept
(not-Accept)和数据类型字段

因此,如果数据类型为空(这是因为csv不是受支持的数据类型),则即使您设置了Accept header或accepts param,它也会抑制Accept header


它似乎不是一个直观的界面,但它对许多人都很有效。我认为如果文档更好,会减少混乱。

谢谢,它可以工作。但我不明白为什么我给出的两个选择都不起作用