我们有一个使用Jquery Ajax POST数据的JavaScript客户端。客户端通过服务器接收和处理的消息体发布一些内容。当我通过IE 11,Chrome或FireFox发送数据时,服务器可以接收邮件正文中发布的内容。
但是当我通过在IE开发人员工具栏中将Document Mode
更改为8
并将User Agent String
更改为IE 8
来模拟IE 8时(如下图所示),服务器未收到通过邮件正文发送的内容。当使用IE 8运行站点时,我面临同样的问题。
Belwo代码段显示了我通过JQuery DataTables发布数据的方式。 DataTables会自动在消息体中发布数据(排序参数,排序顺序,没有要获取的记录等),这就是我们在Ajax obejct中看不到任何其他属性的原因。
ajax: {
url: baseURL + '/data',
type: 'POST'
},
经过大量调查后,我发现请求标题存在差异,导致数据无法在服务器上发布。当通过IE 8模式发送请求时,请求标头中未提及content type
。我尝试在ajax对象中添加content type
属性,但事件没有帮助。请提供您的建议。
ajax: {
url: baseURL + '/data',
type: 'POST',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
},
我通过使用REST客户端发布数据来验证我的理解。当标题中提到content type
时,服务器获取数据。但是当content type
丢失时,服务器无法通过正文发布数据。