Internet Explorer将AJAX GET请求视为POST请求?

时间:2010-05-24 20:57:43

标签: jquery ajax internet-explorer post get

出于某种原因,仅在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。为什么呢?

2 个答案:

答案 0 :(得分:0)

这很可能是您之前以该格式提出请求的缓存问题,将cache:false添加到a​​jax函数中,希望它应该没问题:

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/