首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在jQuery ajax中添加带有文本/csv的Accept Header

如何在jQuery ajax中添加带有文本/csv的Accept Header
EN

Stack Overflow用户
提问于 2013-03-11 15:14:54
回答 2查看 18.9K关注 0票数 11

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

代码语言:javascript
运行
复制
$.ajax({
    type: "GET",
    accepts: "text/csv; charset=utf-8",
    url: "/api/employees",
    success: function (data) {
    }
});

我已经像上面一样把Accept头放在了jQuery ajax中。但从小提琴手那里,我看到:

Accept标头现在变为Accept: undefined。如果我试着把:

代码语言:javascript
运行
复制
    accepts: {
        csv: "text/csv; charset=utf-8"
    }

Accept标头现在变为:Accept: */*

所以我猜这就是让我的服务器返回JSON对象而不是CSV文件的主要原因。

如何在jQuery ajax中正确地制作Accept标头?在小提琴手中看到的应该是:Accept: text/csv

我使用的是Chrome。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-11 15:21:32

试一试

代码语言:javascript
运行
复制
$.ajax({
    headers: { 
        Accept : "text/csv; charset=utf-8",
        "Content-Type": "text/csv; charset=utf-8"
    }
...
票数 14
EN

Stack Overflow用户

发布于 2016-10-24 01:17:20

虽然dakait的回答是正确的,但我将对其进行清理并提供解释。

代码语言:javascript
运行
复制
$.ajax({
  url: '/path',
  headers:{ 'Accept': 'text/csv',
            'Content-Type': 'text/csv' },
  ...

在上面的例子中,我们显式地设置了两个头。

我认为,基于accepts (非Accept)和dataType字段,jQuery有自己的逻辑来处理Accept和Content-Type头部。

因此,如果dataType为空(这是因为csv不是受支持的dataType),即使您设置了Accept头或Accept参数,它也会抑制Accept头。

它似乎不是一个直观的界面,但它对许多人来说都很好用。我认为如果文档更好一些,就不会造成太多的混乱。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15333086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档