Javascript 关于IE8的jQuery.ajax()头设置的详细说明
我试图了解一些Javascript 关于IE8的jQuery.ajax()头设置的详细说明,javascript,jquery,ajax,internet-explorer-8,Javascript,Jquery,Ajax,Internet Explorer 8,我试图了解一些jQuery.ajax()设置: ajaxOb.processData = false; ajaxOb.contentType = false; ajaxOb.cache = false; 一些我认为正确理解的设置,我只需要确认我在这些设置上是正确的 我的服务器对这些设置的请求是针对二进制类型文件的 .processData: 据我所知,因为默认的内容类型标题值是应用程序/x-www-form-urlencoded,如果processData不会设置为false,jQuery将把
jQuery.ajax()
设置:
ajaxOb.processData = false;
ajaxOb.contentType = false;
ajaxOb.cache = false;
一些我认为正确理解的设置,我只需要确认我在这些设置上是正确的
我的服务器对这些设置的请求是针对二进制类型文件的
.processData
:
据我所知,因为默认的内容类型
标题值是应用程序/x-www-form-urlencoded
,如果processData不会设置为false,jQuery将把数据选项转换为字符串以适应内容类型
默认值
.contentType
:
我找到了一些关于为什么要使用它的解释,但我正在寻找一些示例来查看标题,如果有人能广泛地解释它,请在contentType=true
和contentType=false
时显示一些标题示例
.cache
关于缓存根据,我使用cache=false
的唯一原因尽管我使用了POST
,但在IE8
中,POST
是对GET已请求的URL进行的
我不知道我是否正确理解了这句话,所以我不想说一些愚蠢的话,如果有人能解释一下当cache=true
时IE8会发生什么
谢谢大家,祝你们今天愉快
更新: 关于
contentType=false
,我的主要问题是理解边界是什么,现在在这里找到答案后,我需要理解的唯一一件事是:来自关于缓存选项:
如果设置为false,它将强制请求的页面不被
浏览器注意:将缓存设置为false只能在
去接请求。它通过将“={timestamp}”附加到
获取参数。对于其他类型的对象,不需要该参数
请求,除非在IE8中,当对已经存在的URL进行发布时
已被GET请求。
这是我无法理解的:
except in IE8 when a POST is made to a URL that has already been requested by a GET.
如果有人能解释这句话,我将非常感谢。我认为这些都在文档中解释得很好,而且它们的名字让它变得非常不言自明。processData只是告诉jquery要么解析传入的数据,要么不处理它,而是按原样(如果可以)在请求体中发送数据。contentType是用于将数据发送到服务器的contentType。cache是一个标志,它只是将queryparam添加到url,以防止在设置为false时进行缓存。缓存设置为true除了不添加所说的queryparam之外,没有任何作用。我认为您误解了
contentType
选项。它不接受布尔值,而是字符串。这是如何定义发送数据的格式。默认值为'application/x-www-form-urlencoded;charset=UTF-8'
,但如果您将数据作为JSON发送,则应将其设置为'application/JSON'
@Felix我理解您的意思,但如果您查看以下答案:您将理解我为什么设置contentType=false,我不知道这一点。但无论如何,现在您知道什么时候将其设置为false或其他值:)