猿问

将JSON对象发送为字符串而不是数组

我有一个看起来像这样的字符串


{ "name":"John", "age":30, "city":"New York"}

我想将其完全按照上述格式而不是数组形式发布到PHP文件中。原因是我以后将在其他地方使用此字符串,而无需内插或重新格式化它。


这就是我现在所拥有的。


var sentdata = '{ "name":"John", "age":30, "city":"New York"}';


$.ajax({

    url: 'save.php',

    type: 'post',

    data: sentdata,

    success:function(response){

    console.log('Updated'); 

    }


});

PHP当前正在输出以下内容:


数组([{{ “ name”:“ John”, “ age”:30,_“ city”:“ New_York”}] =>)


但是我想要一个基本字符串,看起来像in中sentdata。


我更喜欢Jquery / JSON解决方案,但是如果我必须用PHP做某事,那就这样吧。


谢谢!


汪汪一只猫
浏览 142回答 3
3回答

宝慕林4294392

您尚未设置请求的Content-Type,因此PHP认为您正在发送application/x-www-form-urlencoded数据。由于您的字符串中没有=in,因此将其视为没有值的键,并$_POST使用该数据进行填充。您需要显式设置“内容类型”请求标头。$.ajax({    url: 'save.php',    contentType: "application/json",    // etc但是, PHP不会自动处理JSON编码的请求。$_POST将为空。您需要按照此问题中的说明手动解析JSON 。
随时随地看视频慕课网APP
我要回答