javascript - 尝试使用 $.ajax 发送 JSON,改为发送查询字符串

标签 javascript jquery ajax

<分区>

我使用以下脚本通过 ajax 发送 JSON:

var dat = {"test":"opa"};
console.log(dat);
$.ajax({
   contentType: "application/json",
   method: "POST",
   url: "/test",
   dataType: "json",
   data: dat,
   success:function(res){
      console.log(res);
   }
 });

但是我的服务器收到一个查询字符串,例如 test=opa&foo=bar。我做错了什么?

最佳答案

当您传递手动序列化的 JSON 字符串时,jquery 将自动对您的数据进行 URLEncode。

我建议你 JSON.stringify 它

$.ajax({
   contentType: "application/json",
   method: "POST",
   url: "/test",
   dataType: "json",
   data: JSON.stringify(dat),
   success:function(res){
      console.log(res);
   }
 });

关于javascript - 尝试使用 $.ajax 发送 JSON,改为发送查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50192687/

相关文章:

javascript - 如何在运动路径上有效地反转 SVG (SMIL) 动画?

javascript - 使用 JQuery .val() 提取 HTML 值

ajax - asp.net mvc 部分 View 重定向或显示错误

javascript - 在 JavaScript 的 POST 请求中发送 Json 数组

jquery - 添加自定义 URL 参数以及 $(this.form).serialize()

javascript - 使用 Fetch API 进行 POST 请求?

javascript - 如何在对话框加载时打开多字段的第一项?

javascript - 如何使用一个参数调用多个变量的过滤器?

jquery - 如何切换鼠标的垂直和水平滚动?

javascript - JS/CSS Accordion 滑动过渡问题