jQuery.get()适用于IE,但jQuery.post()不适用

时间:2010-12-02 19:49:01

标签: jquery ajax internet-explorer

我有一个非常奇怪的问题。我正在使用jQuery进行非常标准的ajax调用,但它拒绝使用Internet Explorer 7。

代码如下:

$.ajax({
  url: updateUrl,
  cache: false,
  type: 'post',
  data: params, 
  success: function(data){
    handleResponse(data);
  }
 });

奇怪的是,如果我将类型改为'get',一切都能正常工作。我已经确定,使用'post',IE根本不会向服务器发送任何内容。

我也设置了所有类型的标头以防止缓存,但它们对“发布”问题没有影响。

2 个答案:

答案 0 :(得分:0)

根据$.post()的{​​{1}}(这是AJAX调用的简写),你知道吗:

  

使用POST获取的页面永远不会   缓存

尝试为返回的数据设置dataType,并添加一个错误处理程序,以警告任何错误:

$.ajax({
  url: updateUrl,
  cache: false,
  type: 'post',
  data: params, 
  success: function(data){
    handleResponse(data);
  },
  error: function(xhr,textStatus){
    alert(textStatus);
  }
 });

另外,你确定它发布的页面是获取POST变量而不仅仅是GET变量吗?

答案 1 :(得分:0)

我终于能够追踪这个问题了。最终问题是Sarissa和jQuery之间的冲突。可以从here找到解决方案。提出修复后,IE再次工作。

另一个问题也是CrossOver中的IE7。它总体上似乎有缺陷,因为即使修复它也无法正常工作。