vir*_*yes 28 jquery types header response set
花了一个小时的时间试图找出地球上的原因(coffeescript)
$.ajax
accepts: "application/json; charset=utf-8"
Run Code Online (Sandbox Code Playgroud)
没有绝对没有改变接受头,而这
$.ajax
dataType: "json"
Run Code Online (Sandbox Code Playgroud)
正确设置接受标头 application/json; charset=utf-8
我完全糊涂了,我错过了什么,或者是全年愚人节开玩笑的接受因素?
Dar*_*rov 28
一如既往,文档是你的朋友:
接受
默认值:取决于DataType
在请求标头中发送的内容类型,告诉服务器它将接受哪种响应.如果接受设置需要修改,建议在$ .ajaxSetup()方法中执行此操作.
数据类型
默认值:智能猜测(xml,json,脚本或html)
您期望从服务器返回的数据类型.如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回).可用的类型(以及作为成功回调的第一个参数传递的结果)是:
" xml ":返回可以通过jQuery处理的XML文档.
" html ":以纯文本形式返回HTML; 包含的脚本标记在插入DOM时进行评估.
" script ":将响应评估为JavaScript并将其作为纯文本返回.通过将查询字符串参数附加
_=[TIMESTAMP]到URL来禁用缓存,除非缓存选项设置为true.注意:这会将POST转换为GET以获取远程域请求." json ":将响应计算为JSON并返回JavaScript对象.在jQuery 1.4中,JSON数据以严格的方式解析; 任何格式错误的JSON都会被拒绝,并抛出一个解析错误.(有关正确的JSON格式的更多信息,请参阅json.org.)
" jsonp ":使用JSONP加载JSON块.
?callback=?在URL末尾添加一个额外内容 以指定回调.通过将查询字符串参数附加
_=[TIMESTAMP]到URL来禁用缓存,除非缓存选项设置为true." text ":纯文本字符串.多个空格分隔值:从jQuery 1.5开始,jQuery可以将dataType从Content-Type标头中收到的数据转换为您需要的数据类型.例如,如果要将文本响应视为XML,请对dataType 使用" text xml ".您还可以发出JSONP请求,将其作为文本接收,并由jQuery解释为XML:"jsonp text xml".类似地,诸如"jsonp xml"之类的速记字符串将首先尝试从jsonp转换为xml,如果失败,则从jsonp转换为text,然后从text转换为xml.
现在回到你的问题.我不熟悉cofeescript,但与dataType字符串相反,accepts参数是一个地图,应该像这样使用:
$.ajax({
url: ...
dataType: 'json',
accepts: {
xml: 'text/xml',
text: 'text/plain'
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23708 次 |
| 最近记录: |