Javascript Can';t从jQuery ajax调用获取json数据
我试图通过jQueryAjax调用从Javascript Can';t从jQuery ajax调用获取json数据,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我试图通过jQueryAjax调用从data.php获取数据 我的代码如下所示: var jsonData; $.ajax({ url: 'data.php', success: function(response) { jsonData = response; } }); 我的data.php文件正在返回json格式的数据,但有些文本是Unicode格式的。 我在data.php和javascript文件上设置了字符集
data.php
获取数据
我的代码如下所示:
var jsonData;
$.ajax({
url: 'data.php',
success: function(response) {
jsonData = response;
}
});
我的data.php
文件正在返回json格式的数据,但有些文本是Unicode格式的。
我在data.php
和javascript文件上设置了字符集,但仍然无法访问相应的数据对象
有什么想法吗?尝试将
数据类型:“json”
放在ajax调用中:
var jsonData;
$.ajax({
url: 'data.php',
dataType: 'json',
success: function(response) {
jsonData = response;
}
});
data.php
header('Content-type: application/json');
及
您还可以使用此机制:
$.getJSON( "data.php", function( response ) {
jsonData = response;
});
如果您只想获取JSON:)则更简洁。您应该在
PHP
中使用header()
函数来设置正确的响应头(内容类型和字符集):
您还应在HTML页面顶部重复此操作:
<meta http-equiv="Content-type" value="text/html; charset=UTF-8" />
另请参见:
PHP
try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->query('SET NAMES utf8;');
$stmt = $dbh->prepare($sql);
//$stmt->bindParam("id", $_GET[id]);
$stmt->execute();
$advice = $stmt->fetchAll(PDO::FETCH_OBJ);
$dbh = null;
echo '{"items":'. json_encode($advice) .'}';
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
阿贾克斯
在调用
$.ajax()
之后,是否立即尝试访问jsonData
变量?因为ajax调用是异步的,所以此时它将是未定义的。在success
处理程序中执行处理。(如果不是这样,请单击“编辑”并添加“无法访问”在本例中实际含义的详细信息。在您的响应中实际出现了什么?
变量?)。。甚至不知道这个函数的存在。。很高兴知道:)
<meta http-equiv="Content-type" value="text/html; charset=UTF-8" />
try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->query('SET NAMES utf8;');
$stmt = $dbh->prepare($sql);
//$stmt->bindParam("id", $_GET[id]);
$stmt->execute();
$advice = $stmt->fetchAll(PDO::FETCH_OBJ);
$dbh = null;
echo '{"items":'. json_encode($advice) .'}';
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
var temp;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: serviceurl,
data: "{'userName':'" + userName + "' , 'password': '" + password
+ "'}",
dataType: "json",
success: function(msg) {
temp = jQuery.parseJSON(msg.d);
},
error: function(xhr, ajaxOptions, thrownError) {}
});