当前位置: 首页 > 面试题库 >

jQuery-如何使$ .post()使用contentType = application / json?

严心水
2023-03-14
问题内容

我注意到在jquery中使用$ .post()时,默认contentType为application / x-www-form-urlencoded-
当我的ASP.NET MVC代码需要具有contentType = application / json时

如何使$ .post()发送contentType = application / json?我已经有大量的$ .post()函数,所以我不想更改为$.ajax(),因为这会花费太多时间

如果我尝试

$.post(url, data, function(), "json")

它仍然具有contentType = application / x-www-form-
urlencoded。那么,如果没有将contenttype更改为json,那么“ json”参数到底会做什么呢?

如果我尝试

$.ajaxSetup({
  contentType: "application/json; charset=utf-8"
});

那行得通,但会影响我拥有的每个$ .get和$ .post并导致某些中断。

那么,有什么方法可以更改$ .post()的行为来发送contentType = application / json?


问题答案:

我想你可能不得不

1.修改源以使$ .post始终使用JSON数据类型,因为它实际上只是预配置$.ajax调用的快捷方式

要么

2. 定义您自己的实用程序功能,该功能是$.ajax您要使用的配置的快捷方式

要么

3. $.post function您可以通过自己的实现通过猴子补丁覆盖。

您的示例中的JSON数据类型是指 服务器返回的数据类型 而不是 发送 到服务器的格式。



 类似资料:
  • 我想通过POST请求(使用ajax)发送一个到我的服务器,但是每次尝试都被CORS阻止了。阅读为什么它被封锁一点帮助都没有。在某个时候,这里的一个评论声称,不允许有contentType的POST请求(对不起,我找不到相关的帖子了)。所以我测试了一些东西。我写了以下文件: 我在端口上运行了它。使用contentType发送POST请求可以正常工作,但是get被CORS阻止。 相关javascrip

  • 问题内容: 我有一个ajax调用,它将表单数据发送到php函数。因为我读到很多东西,所以使用最佳实践是我想尝试的。但是不幸的是,我的脚本在使用时不返回任何内容。如果删除它,脚本将执行应做的事情。 您知道原因可能是什么,为什么吗?谢谢! 和我的PHP: 问题答案: 使用时,您将不能依赖于人口稠密。 仅针对表单编码的内容类型填充。 因此,您需要像这样从PHP原始输入读取数据: 当然,如果要发送,则实际

  • 问题内容: 我需要发出内容类型为“ application / json”的jsonp POST请求。我可以这样向服务器发送POST请求: 但是,只要我添加了这一行:它就开始作为OPTIONS请求而不是POST发送。 如何指定内容类型并仍然以POST形式提交请求? 问题答案: 无法发出JSONP POST请求。 JSONP的工作原理是创建一个标签,该标签从另一个域执行Javascript;无法使用

  • 问题内容: 我有一个ajax调用,它将表单数据发送到php函数。因为我读到很多东西,所以使用最佳实践是我想尝试的。但不幸的是,我的脚本在使用时不返回任何内容。如果删除它,脚本将执行应做的事情。 您知道原因可能是什么以及为什么吗?谢谢! 和我的PHP: 问题答案: 使用时,您将无法依靠被填充。 仅针对表单编码的内容类型填充。 因此,您需要像这样从PHP原始输入读取数据: 当然,如果要发送,则实际上应

  • 问题内容: 如何简单地通过JQuery 获取和值? 我想做的是这样的: 问题答案: 对于GET参数,您可以从中获取它们: 对于POST参数,您可以将JSON格式的对象序列化为标记: 在进行此操作(在服务器端执行操作)时,也可以在PHP上收集GET参数: 注意: 您需要PHP 5或更高版本才能使用内置功能。 更新: 这是一个更通用的实现:

  • 问题内容: 我一直在使用此功能并在很长时间内都避免在错误修复列表中出现此错误,但是我终于到达了列表的末尾,最后我必须使函数返回true / false以声明是否验证成功与否。 我正在使用ajax将某些字段与数据库中已有的字段进行比较,并且默认情况下该方法以异步方式进行操作。 我在调用中设置了一个变量,因此,调用方法没有得到响应,因此我的所有js / jquery在pageLoad上都失败了…如果我