Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery MS EDGE是URL编码的AJAX POST调用_Jquery_Json_Ajax_Microsoft Edge - Fatal编程技术网

Jquery MS EDGE是URL编码的AJAX POST调用

Jquery MS EDGE是URL编码的AJAX POST调用,jquery,json,ajax,microsoft-edge,Jquery,Json,Ajax,Microsoft Edge,我有一个$.ajax调用,它正在使用URL编码进行编码。 我需要说明的一件事是,这只发生在Microsoft Edge中。Chrome和Firefox工作正常,没有问题 这是我的Ajax调用 var promise = $.ajax({ url: "/webapp/CustomPricing/StartPricing", type: "POST", contentType: 'application/json', data: { "model": JSON.s

我有一个$.ajax调用,它正在使用URL编码进行编码。 我需要说明的一件事是,这只发生在Microsoft Edge中。Chrome和Firefox工作正常,没有问题

这是我的Ajax调用

var promise = $.ajax({
   url: "/webapp/CustomPricing/StartPricing",
   type: "POST",
   contentType: 'application/json',
   data: {
      "model": JSON.stringify(this.model),
      "numHandlingUnits": this.handlingUnitsCount,
      "handlingUnits": this.commoditiesCount
   },
   xhrFields: {
      withCredentials: true
   }
});
有什么想法吗?

环绕数据

JSON.stringify({
  "model": JSON.stringify(this.model),
  "numHandlingUnits": this.handlingUnitsCount,
  "handlingUnits": this.commoditiesCount
})

jQuery在发送请求之前执行所有编码。在这种情况下,发送的内容将与
$.param(yourdataobjecthere)
相同,并且与您设置的contentType不匹配,param字符串不是json。那么我应该如何更改请求?此外,此问题仅存在于MS-EDGE中。Chrome、IE和Firefox都可以正常工作。你期望它做什么?事实上,您的请求没有多大意义。然后,您需要对整个对象进行JSON.stringify处理,如下面的答案所示。您不希望使用JSON.stringify模型,因为这样您就可以对其进行双重编码(除非您的服务器希望这样),这解决了我将数据发送到服务器的问题。正如@KevinB所提到的,可能不希望将
此.model
和整个对象进行stringify。