如何在jqueryajax中添加带有text/csv的Accept头
这可能是一个简单的问题,但我还没有找到解决办法。我想通过ajax调用从服务器(由ASP.NET Web API实现)下载csv文件:如何在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({
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
它似乎不是一个直观的界面,但它对许多人都很有效。我认为如果文档更好,会减少混乱。谢谢,它可以工作。但我不明白为什么我给出的两个选择都不起作用