duai0935 2015-05-31 13:39
浏览 86
已采纳

使用本地AJAX请求解析JSON数据

I've got a php file on a webserver that executes queries to a MySQL database.

I'm testing a site on my pc (locally) that uses a js file with an AJAX request to get JSON data from that php file.

Is it possible to do it like this, or the js file must be put on the same domain server of the php file?

Because the console.log of the parsed data gives me this error:

Uncaught SyntaxError: Unexpected token I

This is the ajax call

$.ajax({
    method:"POST", 
    crossDomain:true, 
    url:"url for the php file",
    data:{
        query: "SELECT * FROM course_categories;"
    },

    success: function(response){

        var course_categories=JSON.parse(response); 
        console.log(course_categories);
        var el="";
        console.log(course_categories.length);
        for(var i=0;i<(course_categories.length);i++)
        {

        }

    },

    error: function(request,error){
        console.log("ERROR: Request " + request + "
Specific Error: " + error);
    }

While this is the PHP call

<?php

//get all the courses from the database and reply using the JSON structure

//$mysqli=new msqli("localhost","username","password","dbname");

 $mysqli=new mysqli("localhost","hey","","db_name");


if(mysqli_connect_errno()) //returns a number of the error if there is any,              if not
{
echo json_encode("Error to connect to DBMS".mysqli_connect_error());

exit(); //closes the connection
}
else
{


$query=$_POST["query"];
    //$query="SELECT * FROM course_categories";
       $result=$mysqli->query($query); //do a query (->query) setted by $query, using the $mysqli variable, and store the data in $result 

if($result->num_rows >0) //if there is at least one row...
{
    $myArray= array(); //...create an array...
    while($row = $result->fetch_array(MYSQL_ASSOC))
    { 
        //...and fetch it. Everytime this operation returns a row,
        $myArray[]=$row; //...and added to myArray ([] means autoincrement).
    }

}

echo json_encode(utf8ize($myArray));

 //free result
$result->close();

//close connection
$mysqli->close(); 

}
  • 写回答

1条回答 默认 最新

  • douxun4924 2015-05-31 16:46
    关注

    I did it. All I had to do, was to remove the crossDomain:true line so that the JSON could actually parse the data.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵