【发布时间】:2012-06-09 19:04:22
【问题描述】:
我正在向托管在我拥有的网站上的 php 脚本发出 JsonP 请求。 php 脚本从 DB 中获取结果并以 Json 形式返回。
问题是数据库包含希伯来字符,我将它们作为 '??????'在响应中。
知道如何解决这个问题吗?
这里是js代码:
$.getJSON("http://flyfish.co.il/appdiet?callback=?",function(data){
$('p').text(data[0].food_name);
});
和php代码:
<?php
header('Content-type: text/html; charset=UTF-8');
require_once 'config.php';
$mysqli = new mysqli(HOST,USERNAME,PASSWORD,DB_NAME);
$query = "SELECT * from mytable";
if ($result = $mysqli->query($query))
{
$data = array();
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
echo $_GET['callback'].'('.json_encode($data).')';
}
else {
echo $_GET['callback'].'('.$mysqli->error.')';
}
$mysqli->close();
【问题讨论】:
-
header('Content-type: text/html; charset=UTF-8');?嗯? 文本/html?! -
这不是 JSON。它是 JSON-P,所以正确的 MIME 类型是
application/javascript。 -
嗨,我改变了它,但它没有成功:(,也尝试了 application/json 没有成功。