火狐浏览器在xhrPost中不遵守Content-type头部

4

我正在尝试向REST服务发布一个json字符串。使用以下代码:

dojo.xhrPost( {
    url: REST_URL,
    postData: jsonData, 
    handleAs: "json",
    headers: {"Content-Type": "application/json"},    
    load: function(response, ioArgs) { 
    alert(response);
  },    
  error: function(response, ioArgs) {
        alert(response);
    }
  });

我使用fiddler拦截浏览器(IE/Firefox)发送的请求。当我从IE提交请求时,fiddler显示Content-type头设置为“application/json”。

然而,当使用Firefox提交相同的请求时,请求头中没有看到Content-type头(即Firefox没有添加)。我的服务器设置了验证Content-type为“application/json”。因此,服务器拒绝该请求。

问题:

  1. 现在我该怎么做才能使Firefox也可以正常工作?
  2. 更重要的是,为什么Firefox不会将Content-type头添加到请求头中?
  3. 环境详细信息:操作系统:Win7 32位,浏览器:IE8/9和Firefox 11

这通常是有效的。你能链接到一个实际显示问题的页面吗? - Boris Zbarsky
这是一个内部开发活动。我会尝试在其他地方复制并分享代码。谢谢。 - Mohd Asim
2个回答

2

你的测试中可能出现了错误。Firefox也会添加你指定的Content-type头信息。IE/Chrome和Firefox之间唯一的区别是,FF会添加字符集信息,如下所示。

Content-Type: application/json; charset=UTF-8

谢谢。我们已经分析了太多次,不可能是错误。 - Mohd Asim

1
我知道这个问题已经过时了,但是因为有类似的问题,所以我找到了这个错误报告
如果你正在寻找先贤的智慧,希望这可以帮到你;)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接