[英]How can I send more than one String through a POST or JSON? Can I send a JSON array through another JSON object?
[英]Send JSON object as string not array
我有一個看起來像這樣的字符串
{ "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”}] =>)
但我想要一個看起來與sentdata
完全相同的基本字符串。
我更喜歡Jquery / JSON解決方案,但如果我必須在PHP中做一些事情,那就這樣吧。
謝謝!
代碼應該看起來這樣,注意JS代碼的變化
數據:{data:sentdata}
var sentdata = '{ "name":"John", "age":30, "city":"New York"}';
$.ajax({
url: 'save.php',
type: 'post',
data: {data: sentdata},
success:function(response){
console.log('Updated');
}
});
然后你在PHP代碼中有字符串變量:
$_POST["data"]
您尚未設置請求的Content-Type,因此PHP認為您正在發送application/x-www-form-urlencoded
數據。
由於您的字符串中沒有=
,因此將其視為沒有值的鍵,並使用該數據填充$_POST
。
您需要顯式設置內容類型請求標頭。
$.ajax({
url: 'save.php',
contentType: "application/json",
// etc
但是, PHP不會自動處理JSON編碼的請求。 $_POST
將為空。
您需要按照此問題中的描述手動解析JSON。
您仍然可以作為對象發送,但添加字符串作為值本身。
var sentdata = ['data' : '{"name":"John", "age":30, "city":"New York"}'];
然后只需將其作為$_POST["data"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.