javascript - 错误:JSON.parse 中位置 0 处的 JSON 中的意外标记 <) 在 XMLHttpRequest.ajax.onreadystatechange
问题描述
我使用 Javascript 和 Ajax 从服务器发送和接收数据。我在服务器文件中读到了一些错误,为什么它给出了这个错误,但我找不到任何错误。
我的html文件
<select class="form-control" id="semester" name="semester">
<option value=-1>Select Semester</option>
<option value=1>Semester </option>
<option value=1>Semester 1</option>
<option value=2>Semester 2</option>
<option value=3>Semester 3</option>
<option value=4>Semester 4</option>
<option value=5>Semester 5</option>
<option value=6>Semester 6</option>
<option value=7>Semester 7</option>
<option value=8>Semester 8</option>
</select>
<<select class="form-control" id="category_id" name="category_id">
<option value=-1>Select Catagory</option>
<option value=1>Institutional Reqt.</option>
<option value=2>Adv. Core</option>
<option value=3>Foundation</option>
<option value=4>Adv. Elect</option>
</select>
<input class="btn btn-primary" type='button' id='find' value='find' name="find">
</form>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Job Title</th>
</tr>
<tbody id="data">
</tbody>
</table>
我的 JavaScript 文件
这是发送学期号和用户希望看到的类别。
<script>
$("#find").click(function(){
var semester=$("#semester").val();
var category_id=$("#category_id").val();
$.ajax({
url:'data.php',
type:'GET',
data:{semester:semester,category_id:category_id},
success:function(data){
console.log(data);
if(data==1){
console.log("Very noice");
}
}
})
});
这是从服务器接收信息。
//调用ajax
var ajax= new XMLHttpRequest();
var method='POST';
var url = 'data.php';
var asynchronous = true;
ajax.open(method, url, asynchronous);
// sending ajax request
ajax.send();
//receiving response from data.php
ajax.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200)
{
//converting JSON back to array
var data = JSON.parse(this.responseText);
console.log(data);
var html = "";
//loopinh through the data
for(var a=0;a<data.length;a++){
var firstName=data[a].semester;
var lastName=data[a].course_title;
var jobTitle = data[a].course_desc;
html += "<tr>";
html += "<td>" + firstName + "</td>";
html += "<td>" + lastName + "</td>";
html += "<td>" + jobTitle + "</td>";
html += "</tr>";
document.getElementById("data").innerHTML = html;
}
}
}
</script>
这是我的 php 文件
<?php
//getting data from database
$conn = mysqli_connect("localhost","root","","bscis1620");
$semester = $_GET['semester'];
$category_id= $_GET['category_id'];
$query = 'select * from bscis1620';
$check = 0;
$semesterq="$semester = bscis1620.semester";
$category_idq="$category_id = bscis1620.category_id";
if($semester>0){
if($check == 0){
$query = $query. " where ". $semesterq;
$check++;
}
else{
$query = $query. " and ". $semesterq;
}
}
if($category_id>0){
if($check == 0)
$query = $query. " where ". $category_idq;
else{
$query = $query. " and ". $category_idq;
}
}
$result=mysqli_query($conn, $query);
$data = array();
while($row = mysqli_fetch_assoc($result))
{
$data[] = $row;
}
echo json_encode($data);
?>
我已经通过 console.log 检查了我的查询,并从数据库中获得了正确的信息,我将非常感谢任何帮助。
解决方案
推荐阅读
- windows - 有没有办法监控声卡,尤其是从某些应用程序?
- javascript - AutoNumeric 更改值
- node.js - 我应该在每个模块中要求吗?
- python - 如何检测股票价格的日历效应(星期几、月份等)
- javascript - 是否可以在 Node.js 中为错误输出设置颜色/格式?
- python - Python/Selenium Firefox 驱动程序在 Ubuntu 上失败,在 Windows 上正常
- python-3.x - 使用 selenium 打开时如何捕获错误 url 的异常信息?
- python - 如何通过结合元组和静态字符串来使用 itertools 创建字典
- ruby-on-rails - 语法错误,意外结束,期待输入结束,虽然我认为它有正确的结束编号
- numpy-ndarray - 有没有办法将一个大小为 1235 的 numpy 数组从 1D 重塑为 2D