ajax jquery post在firefox中成功返回结果,但在其他地方简单变量为空

ajax jquery post在firefox中成功返回结果,但在其他地方简单变量为空,jquery,ajax,web-services,json,post,Jquery,Ajax,Web Services,Json,Post,遇到了一个严重的问题,导致了一些麻烦,并且无法找到解决此特定问题的方法。我将ajax post与json一起用于我的Web服务,然后使用返回值。在firefox中,一切都如预期的那样工作,但在其他地方,如ie、chrome、safari,则不然 但是,在其他浏览器中,如果我返回更复杂的值,例如我自己的对象,它将始终工作得很好,但是更多的标准变量字符串、bool、int[]等将在返回过程中丢失,并且返回的响应数据将为空,尽管在此之前一切都成功。因此,除非ff中的返回值为null外,所有操作都有效,

遇到了一个严重的问题,导致了一些麻烦,并且无法找到解决此特定问题的方法。我将ajax post与json一起用于我的Web服务,然后使用返回值。在firefox中,一切都如预期的那样工作,但在其他地方,如ie、chrome、safari,则不然

但是,在其他浏览器中,如果我返回更复杂的值,例如我自己的对象,它将始终工作得很好,但是更多的标准变量字符串、bool、int[]等将在返回过程中丢失,并且返回的响应数据将为空,尽管在此之前一切都成功。因此,除非ff中的返回值为null外,所有操作都有效,除非自定义对象

两个有趣的注释:

完全删除contentType规范确实会使它成功地返回简单变量,否则调用将失败。虽然在返回空列表等时会出现问题,但可能会处理此问题并使其正常工作。而且也不是一个真正合适的解决方案。 使用fiddler不能捕获即post请求,只能捕获ff。在ff中,它给出了以下错误evne,尽管后面的结果正常: 内容长度不匹配:响应头声明了1767884字节,但服务器发送了1772317字节。 相当标准的postmethod一直在使用不同的参数,如缓存等,但都没有用:

/* Excutes a remote method */
function executeMethod(location, methodName, methodArguments, onSuccess, onFail) {
  $.ajax({
    type: 'POST',
    url: location + "/" + methodName,
    data: methodArguments,
    contentType: "application/json",
    dataType: "json",
    success: onSuccess,
    error: onFail
  });
} 
Web服务方法:

namespace Domain1.ClientServices
{
  [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  [ServiceContract(Namespace = "")]

  public class AjaxService 
{
....
[OperationContract]
    public string PrintTransportNote(int meansOfTransport, int deliveryId)
    {
        return "string1";
    }
}
}

旁注,我正在使用第三方提供商telerik,如果这可能会引起任何问题。

我与这个问题斗争了9个多小时,直到我发现:

显然,在开发Web服务器中工作时需要禁用RadCompression模块。您不需要为IIS执行此操作,但是压缩模块工作正常