javascript - 如何正确评估字符串变量作为 jQuery.post() 中的数据

标签 javascript php jquery

我试图将一个数组作为 POST 数据传递给 php,但是 .post() 似乎不喜欢我的数据字符串变量。

JavaScript:

var appData = {};
appData['name'] = 'Bob';

var post = JSON.stringify(appData);

$.post('/php/app.php', post, function (result) {
    console.log(post);
    console.log(result);
});

应用程序.php:

if($_POST['name']) {
    echo $_POST['name'];
}
else {
    echo 'fail';
}

控制台返回:

{"name":"Bob"}
fail

或者,如果我拼写出 stringify 返回的字符串,一切都会按预期进行:

修改后的javascript:

$.post('/php/app.php', {"name":"Bob"}, function (result) {
    console.log(post);
    console.log(result);
});

控制台返回:

{"name":"Bob"}
Bob

这是怎么回事?

最佳答案

Alternatively, if I spell out the string returned by stringify

这不是您使用的字符串,而是 $.post 接受的对象。

jQuery使用的默认编码是'application/x-www-form-urlencoded; charset=UTF-8',这意味着实际发送到服务器的字符串是name=Bob,而不是{"name":"Bob"}

关于javascript - 如何正确评估字符串变量作为 jQuery.post() 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143292/

相关文章:

javascript - 添加 InnerHTML 时 Jquery DatePicker 不起作用

javascript - 如何比较路径是否在同一个文件夹中

javascript - 如何在 jQuery 中添加悬停文本?

javascript - 在浏览器地址栏中使用 Javascript 代码填写表单

php - Paypal IPN 返回无效

php - 我的登录页面上的数据丢失?

javascript - 使用 JQuery 使 div 坚持非子 div

javascript - 悬停时的 jQuery 函数

php - 在 Symfony 中向我的 ChoiceType 表单字段添加一个 'other, please specify' 选项

javascript - 如何检测用户是否点击了 "back"按钮