在jquery成功之后使用响应参数上的Alert将显示我需要的值,问题是用k / v选择它们。我不知道这是不是与json格式不兼容的问题或者是什么,来自php。如果我试图通过使用键来获取值,则没有任何事情发生(没有警报)或警报会说“未定义”。
相关代码:
JQuery的:
var curr = $(this).val();
// alert(curr);
$.ajax({
type: 'GET',
url: 'CurrencyResponse.php?q='+curr,
contentType: "application/json; charset=utf-8",
success: function(response) {
var items = response.d;
// alert(response); this will display some json key value from server
$.each(items, function (index, item) {
// alert(item.msg); or updating some div tag here, eventless
});
},
PHP:
<?php
// $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
// $query = $_GET["q"];
$response = array();
$response["msg"] = "Hjksa!";
$response["nok"] = "9.32";
echo json_encode($response);
?>
这里的帮助将不胜感激! =)
答案 0 :(得分:2)
对jQuery的AJAX使用dataType
参数,如下所示:
$.ajax({
type: 'GET',
url: 'CurrencyResponse.php?q='+curr,
dataType: 'json',
success: function( json) {
alert( json.msg); // Will output Hjksa!
}
});
这告诉jQuery服务器的响应是JSON,它应该将JSON对象返回给以服务器响应作为参数的回调函数。
详细了解jQuery's site上的dataType
。
答案 1 :(得分:1)
从文档中判断,它将从响应头中读取MIME类型,并使用它,除非您明确指定它。因此,要么将PHP脚本上的标题设置为application / json,要么将“dataType”参数设置为“json”。
答案 2 :(得分:0)
我建议将对象发送到客户端脚本。它使读取数据更容易。
echo json_encode((object) $array);
答案 3 :(得分:0)
我正在处理类似的问题几天,我已经设置了
dataType: "json",
但它仍然以字符串形式回归。除了jquery请求之外,在我的php文件的头文件中指定json为我解决了这个问题。
header("Content-type: application/json");
希望能帮助别人!