出于某种原因,仅在IE(试过7和8)中,jQuery在应该是GET时执行POST请求。见下文:
function(...) {
/* ... */
$.ajax({
type: 'GET',
dataType: 'script',
url: '/something/' + id,
processData: false,
data: 'old_id=' + oldId,
success:function(data) {
alert(data);
}
});
/* ... */
}
所有浏览器都正常GET,但IE正在执行POST。为什么呢?
答案 0 :(得分:0)
这很可能是您之前以该格式提出请求的缓存问题,将cache:false
添加到ajax函数中,希望它应该没问题:
function(...) {
/* ... */
$.ajax({
type: 'GET',
cache:false, // this needed for IE
dataType: 'script',
url: '/something/' + id,
processData: false,
data: 'old_id=' + oldId,
success:function(data) {
alert(data);
}
});
/* ... */
}
答案 1 :(得分:0)
通过在$.ajaxSend()
的调用中附加参数来解决问题,这导致jQuery库将POST请求转换为IE中的GET请求。以下是有关我遇到的解决方案的更多信息:
http://www.justinball.com/2009/07/08/jquery-ajax-get-in-firefox-post-in-internet-explorer/