[英]JSON call returns [object Object] or undefined
非常初級的問題。 嘗試學習 JSON 並且無法獲得正確的返回數據。 我正在嘗試使用 JSON 從 php 表單中返回錯誤,使用json_encode($errs, JSON_FORCE_OBJECT)
,但首先我想讓下面的非常簡單的代碼能夠理解 Z0ECD10814C1D7A287ABB74A。
我在這里查看了類似的線程,閱讀了整個 JSON.org 文檔,查看了 JQuery 的 $.getJSON() 方法並插入了文檔中的確切代碼,以及 JSON 文檔的確切代碼,我仍然可以除了“未定義”或“[object, Object]”之外,似乎沒有得到響應。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!---CSS-->
<link href="style/960.css" media="all" rel="stylesheet" type="text/css" />
<link href="style/pubstyle.css" media="all" rel="stylesheet" type="text/css" />
<!--- Javascript -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"
type="text/javascript"></script>
<script src="javascripts/form.js" type="text/javascript"></script>
<script src="javascripts/validate.min.js" type="text/javascript"></script>
<script src="javascripts/json2.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
var resp = {"message":"hi"};
$("a#button").click(function(resp) {
alert(resp)
});
});
</script>
<a id="button" href="#">Button</a>
</body>
</html>
上面的代碼返回帶有“[object Object]”的警報。 當我將代碼更改為:
$(document).ready(function() {
var resp = {"message":"hi"};
$("a#button").click(function(resp) {
alert(resp.message)
});
});
我收到“未定義”警報。 我嘗試將其放入數組 object
{ "messages": [ {"message":"hi"}]}
並用
resp.messages[0].message
沒有運氣。 我嘗試將 Content-Type 更改為“application/json”和“text/plain”,但都沒有奏效。 也試過
$(document).ready(function() {
var resp = jQuery.parseJSON('{"message":"hi"}');
$("a#button").click(function(resp) {
alert(resp.message)
});
});
您在這里混淆了幾個不同的元素。
簡單示例,基於您問題中的最后一個代碼塊:
$(document).ready(function() {
var resp = $.parseJSON('{"message":"hi"}');
$('#button').click(function(event) {
alert(resp.message);
});
});
您的此代碼版本不起作用,因為click
回調 function 接收點擊事件 object作為其參數。 回調中的resp
參數名稱隱藏了resp
變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.