Php 错误200-语法错误:JSON.parse:意外字符

Php 错误200-语法错误:JSON.parse:意外字符,php,mysql,json,Php,Mysql,Json,我试图使用ajax和jquery从mysql数据库中填充一个下拉列表。数据应为json格式。但我一直得到语法错误:JSON.parse:意外字符。请告知。谢谢你的帮助 这是我在Dreamweaver中的代码 $(document).ready(function(){ $.getJSON("http://localhost:8000/states.php", function(data) { $.each(jsondata, function(index, item) {

我试图使用ajax和jquery从mysql数据库中填充一个下拉列表。数据应为json格式。但我一直得到语法错误:JSON.parse:意外字符。请告知。谢谢你的帮助

这是我在Dreamweaver中的代码

 $(document).ready(function(){

$.getJSON("http://localhost:8000/states.php", function(data) {

    $.each(jsondata, function(index, item) {

        $('<option></option>').val(item.state_code).html(item.state).appendTo("select#personalstate");
        }); 
    }); 
});
数据库代码:

database.php

json php文件


能否显示响应中的原始JSON?Side节点:不需要准备/执行没有输入参数的简单查询。您只需调用$result=$db->query'SELECT*fromstates'$states=$result fetchAll;为了帮助您了解SteveFenton的评论,您可以:;或者在Chrome中打开开发者控制台,查看“网络”选项卡,查看服务器的响应。@Tom console.logdata是比警报好得多的调试方法,我打赌你喜欢收到一个警报,上面写着[object object]……@scrowler True,我没有注意到getJSON,我也刚刚意识到这是他们代码的问题。getJSON自动解码JSON数据。因此,额外的parseJSON是不必要的,这也是他们会出现解析错误的一个很好的原因;,我仍然会犯同样的错误。有什么建议吗?谢谢。@user3413326正如SteveFenton所说的,您需要发布正在返回的原始JSON字符串。我该怎么做?我对json和php几乎没有经验。谢谢。在Chrome中,按F12,然后单击网络选项卡。激发json请求并在网络选项卡中查看请求。看到请求后,单击它并查看“响应”选项卡。由于没有建立连接,服务器没有响应。我收到以下错误:请求的资源上不存在“Access Control Allow Origin”头。因此,不允许访问源“null”。我修改了上面的javascript代码。但是在那之后我得到了以下错误:net::ERR\u CONNECTION\u拒绝。请告知。非常感谢。
<?php
$dsn = 'mysql:host=localhost;dbname=elihu';
$username = 'admin';
$password = 'password';
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
try {
    $db = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    $error_message = $e->getMessage();
    include ('index.php');
    exit();
}
?>
<?php

require('database.php');

function getStates() {
    global $db;
    $query = 'SELECT * FROM states';

    try {
        $statement = $db->prepare($query);
        $statement->execute();
        $states = $statement->fetchAll(PDO::FETCH_ASSOC);
        $statement->closeCursor();   
        echo json_encode($states);

    } catch (PDOException $e) {
        $error_message = $e->getMessage();
        include ('index.php');
        exit();
    }
}
?>
$.getJSON("Model/php/states.php", function(data) {
    // No need to parse the json data, it's already been parsed by getJSON
    // jsondata = $.parseJSON(data);