從PHP腳本請求JSON:通過AJAX請求PHP腳本。 Ajax請求返回實際的PHP腳本
var channelList;
$(document).ready(function() {
$.ajax({
url: 'channellookup.php',
dataType: 'json',
error: function(){console.log(arguments)},
success: function(data) {
console.log(data.success);
channelList = data;
}
});
});
現在到了有趣的部分:在控制檯中的錯誤信息內容是這樣的:
Arguments { 0: XMLHttpRequest, 1: "parsererror", 2: "Invalid JSON: <?php
header('Content-type: application/json'); // To ensure output json type.
class MyDB extends SQLite3
{
等。 我的整個PHP代碼都在這個消息中。這裏有些事情必須完全錯誤。
這是我完全
<?php
header('Content-type: application/json'); // To ensure output json type.
class MyDB extends SQLite3
{
function __construct()
{
$this->open('database_sqlite3.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
SELECT * from channels;
EOF;
$ret = $db->query($sql);
$channelList = array();
while($row = $ret->fetchArray(SQLITE3_ASSOC)){
$channelList[] = $row;
}
echo json_encode($channelList);
$db->close();
?>
PHP,你可以看到我做編碼爲JSON。正如我所說,這在終端工作。 請記住,我不想在我的html中使用json,因此在異步請求完成之前生成的頁面還不是問題。
問題可能是我沒有在遠程服務器上執行此操作,而是在本地文件上執行此操作?據我所知,瀏覽器應該能夠處理這種情況。
刪除'header('Content-type:application/json');'從你的php文件中再次檢查 – 2015-02-23 05:24:48
結果仍然是一樣的 – 2015-02-23 05:26:02
你確定你的php文件在可以運行php的服務器上嗎? – 2015-02-23 05:31:41