jQuery Ajax POST改变了​​Firefox中的Content-Type

时间:2013-12-18 16:41:47

标签: ajax jquery firefox content-type

我正在进行Ajax调用,将一组字段,对象和数组POST到PHP。 10次​​中有9次这很好用。但是,当多次提交相同的请求(数据没有变化)时,请求偶尔会以Content-Type:text / plain或text / html而不是application / x-www-form-urlencoded发送,从而导致我的PHP。 JSON可能更合适,但任何人都可以想到为什么会发生这种情况?

  • 这不是跨域请求。
  • 这只发生在Firefox中。
  • 我认为我不需要指定Content-Type,因为Ajax是默认的。
  • 我明确地致电$.param()但不认为我需要。
  • 我期待JSON的回报。

    $.ajax({url: action,
       type: "POST",
       dataType: "json",
       data: $.param($(domElement).data()),
       complete: function() {
          // Cleanup
       },
       success: function(data) {
          // Handle success.
       },
       error: function() {
          // Handle error
       }
    });
    

1 个答案:

答案 0 :(得分:0)

不确定为什么这只会在Firefox中发生,但如果您手动设置内容类型会有帮助吗?

$.ajax({url: action,
   type: "POST",
   contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
   dataType: "json",
   data: $.param($(domElement).data()),

   complete: function() {
      // Cleanup
   },
   success: function(data) {
      // Handle success.
   },
   error: function() {
      // Handle error
   }
});