-1
我想用文本解析JSON,使用JSON.parse
。JSON.parse不能正確解析JSON
我的問題是,我的JSON編碼爲UTF8,但JSON.parse
不會用UTF8解析它。
這是我的build_workout_functions.js
代碼:
function getExercies(){
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
console.log(xmlhttp.responseText);
var obj = JSON.parse(xmlhttp.responseText);
console.log(obj);
}
}
xmlhttp.open("POST","get_exercise_list.php",true);
var e = document.getElementsByName("muscles");
var strUser = e[0].options[e[0].selectedIndex].text;
console.log(strUser);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send("muscle=" + strUser);
}
的PHP代碼:
<?php
header("Content-type: application/json; charset=utf-8");
if(isset($_POST['muscle'])){
echo $_POST['muscle'];
$response["test"] = $_POST['muscle'];
echo json_encode($response);
}
?>
的HTML頁面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="build_workout_functions.js" charset="UTF-8"></script>
</head>
<body id="login-bg">
<div class="workout_table">
<select name="muscles" onchange="getExercies()">
<option value="legs">טסט</option>
<option value="back">טסט2</option>
</select>
<select name="exericse"><select>
</div>
</body>
</html>
在我的開發者控制檯(我使用的是Chrome瀏覽器)我看到這個日誌:
יד קדימית build_workout_functions.js:33
XHR finished loading: "****************".
build_workout_functions.js:38
יד קדימית{"test":"\u05d9\u05d3 \u05e7\u05d3\u05d9\u05de\u05d9\u05ea"}
在我的日誌中,我看到當我只是回顯我的POST時,我可以看到它編碼正確。
但我的JSON.parse
沒有這樣做。我怎樣才能解決這個問題?
到底是什麼問題,什麼是分析「不正確」?順便說一句,你的日誌不符合你的代碼。 – Bergi
什麼是您的PHP版本? – Nico
你有什麼錯誤嗎?當你說什麼「不起作用」時,它可以極大地幫助*解釋你的意思。 – Pointy