Javascript Jquery JSON 发布 - 我的理解正确吗?

标签 javascript php jquery json ajax

我的理解是否正确:

// JavaScript, jQuery
$.ajax({
    url: '/post.php',
    method: 'post',
    data: JSON.stringify({a: 'a', b: 'b'}),
    contentType: 'application/json'
});

$_POST 将有 0 个元素

现在,PHP 接收的是字符串,而不是对象。所以它不能将其作为键/值进行迭代

由于 JSON 已经构造完毕,因此无需字符串化。

在这种情况下应该可以正常工作:

// JavaScript, jQuery
$.ajax({
    url: '/post.php',
    method: 'post',
    data: {a: 'a', b: 'b'},
}); 

最佳答案

来自the jQuery API documentation :

The data option can contain either a query string of the form key1=value1&key2=value2, or an object of the form {key1: 'value1', key2: 'value2'}. If the latter form is used, the data is converted into a query string using jQuery.param() before it is sent.

如果您传递一个字符串作为 data 属性的值,那么这就是发送到服务器的内容。如果传递对象,对象将转换为参数字符串。

服务器期望参数采用 HTTP 查询字符串的形式:

key1=value1&key2=value2&key3=value3

如果您传递 JSON 字符串,它看起来不会像那样,并且服务器将无法执行正常的参数处理。如果您有可以处理 JSON 的服务器代码,那么这不一定是错误或坏的。

关于Javascript Jquery JSON 发布 - 我的理解正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40934918/

相关文章:

javascript - AJAX 后 - Codeigniter

javascript - 通过ajax提交表单不适用于下拉索引更改

javascript - 对象不支持此属性或方法 'isotope'

javascript - 如何使 float div成为每行最高元素的高度

javascript - 如何允许PHP文件只能通过调用reference/view.php?url=123访问

php - 从多个 mySQL 表中检索数据

php - 将 JSON 从 PHP 返回到 JavaScript?

php - 为什么我们在 php 中使用 mysqli_poll() 函数?

javascript - 在相对 div 内部/外部居中绝对 div

javascript - jQuery Toggle 在窗口调整大小时不显示