我注意到,与IE8和IE9,如果我叫使用jQuery.ajax()的POST我的RESTful API和PUT动词,那么我不jqXHR取回任何响应头 。 然而,GET请求按预期方式工作。
此行为是从所有其他浏览器不同。 我验证过的Chrome,FF,Opera和Safari都返回全套预计头在POST和PUT请求的响应。 只有IE8和IE9似乎在地板上扔了头。 (我没有检查一件事是HEAD请求会发生什么。)
我已经使用Fiddler验证了头实际上使得它在线材,所以这个问题是要么与jQuery本身或与IE8和IE9。
这是一个已知的问题? 如果是这样,有一种解决方法。 我可以重载jQuery的/覆盖东西保存下面的帖子标题和PUT? 我目前的解决办法是重新提取简单地用成功回调内得到修改的数据,因为IE8和IE9不乱用标头GET操作。
这里是我的主要基于jQuery的AJAX辅助方法的一个片段:
$.ajax({
url: String.format(um.proxy.url, url),
type: ajaxParams.verb,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: String.format('{0}', ajaxParams.jsonData),
headers: mapOfHeaders,
success: function (data, textStatus, jqXHR) {
//...
},
error: function (msg, textStatus, errorThrown) {
//...
}
});