Javascript VM299:1未捕获的语法错误:JSON.parse(<;anonymous>;)位置0处的JSON中出现意外标记u
我正在尝试使用ajax请求获取数据,下面是ajax请求Javascript VM299:1未捕获的语法错误:JSON.parse(<;anonymous>;)位置0处的JSON中出现意外标记u,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我正在尝试使用ajax请求获取数据,下面是ajax请求 document.getElementById("myForm").style.display = "block"; $('body').css('overflow','hidden'); $.ajax({ type: 'POST', url: 'techte
document.getElementById("myForm").style.display = "block";
$('body').css('overflow','hidden');
$.ajax({
type: 'POST',
url: 'techtest.php',
dataType: 'json',
data: { id: val },
success: function(response, status, xhr){
console.log(response.array[1]);
document.getElementById('tech_about_me').innerHTML = response.array[0];
document.getElementById('tech_assest_group').innerHTML = response.array[1];
document.getElementById('tech_skill_group').innerHTML = response.array[2]+""+response.array[3];
document.getElementById('tech_address').innerHTML = response.array[4];
},
error: function(data,XMLHttpRequest,xhr, textStatus, errorThrown) {
console.log("Status: " + textStatus); console.log("Error: " + errorThrown);
var err = JSON.parse(xhr.responseText);
console.log(err.Message);
var json = $.parseJSON(data);
alert(json.error);
}
});
但我收到错误“VM299:1未捕获的语法错误:JSON中位于JSON.parse()位置0处的意外标记u”
下面是我返回json的代码
<?php
header("Content-Type: application/json");
include "../common/config.php";
include"../includes.php";
include"session.php";
// print_r('<script>console.log('.$_POST['id'].')</script>');
$technician_details=$db->get_a_line("select * from user where user_id='".$_POST['id']."'");
$about_me=$technician_details['about_me'];
$address=$technician_details['address'];
$assest_group=$technician_details['assest_group'];
$skill_group=$technician_details['skill_group'];
$skill_list=$technician_details['skill_list'];
$data = array();
$data[]=$about_me;
$data[]=$assest_group;
$data[]=$skill_group;
$data[]=$skill_list;
$data[]=$address;
$json_data = array(
"recordsTotal" => '5', // total number of records
"array" => $data // total data array
);
echo json_encode($json_data); // send data as json format
?>
在您最后的评论之后,我很快组织了一个小测试来模拟您的脚本所做的操作。这样行
我建议先按原样测试,然后,如果您对测试结果满意,请取消对include
行的注释,然后再次测试。然后,如果可行,尝试使用实际的数据库查询等
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' ){
if( !empty( $_POST['id'] ) ){
/*
# are these being included correctly?
include '../common/config.php';
include '../includes.php';
include 'session.php';
*/
# to emulate db query and results
$id=filter_input( INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT );
$sql=sprintf( 'select * from user where user_id="%s"',$id );
$payload=array(
'about' => 'From db - all about user - based upon id '.$id,
'assetgroup' => 'From db - which asset group',
'skillgroup' => 'From db - which skill group',
'skilllist' => 'from db - what skills',
'address' => 'from db - address of tech'
);
$data = array(
'recordsTotal' => count( $payload ),
'data' => $payload,
'sql' => $sql
);
header( 'Content-Type: application/json' );
exit( json_encode( $data ) );
}
exit('error');
}
?>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>basic jquery - error parsing response</title>
<script src='//code.jquery.com/jquery-latest.js'></script>
<script>
document.addEventListener('DOMContentLoaded',()=>{
const node=function(id){
return document.getElementById( id )
};
let val=303;
$.ajax({
type:'POST',
url:location.href, //techtest.php
dataType:'json',
data:{ id: val },
success:function( r ){
node('tech_about_me').innerHTML = r.data.about;
node('tech_assest_group').innerHTML = r.data.assetgroup;
node('tech_skill_group').innerHTML = r.data.skillgroup+" "+r.data.skilllist;
node('tech_address').innerHTML = r.data.address;
console.info( r.sql, r.recordsTotal )
},
error: function(e) { alert(e); }
});
});
</script>
</head>
<body>
<div id='tech_about_me'></div>
<div id='tech_assest_group'></div>
<div id='tech_skill_group'></div>
<div id='tech_address'></div>
</body>
</html>
虽然不是您问题的答案,但值得注意的是,您的代码容易受到sql注入的攻击。可能是,您正在尝试对JSON.parse进行未定义
谢谢。要在@RamRaideris上面的PHP中工作吗?techtest.PHP
?在打开PHP标记之前是否有空格?是否有任何包含的文件使用了echo
或print
?不,php之前没有空格,并且包含的文件@RamRaiderThanks中没有echo或print。其中一个包含的文件包含了更多的包含项。可能是出了什么问题。很好-很高兴你现在越过了那个小小的障碍。祝你好运。现在我们来解决sql注入的障碍。这个项目充满了它D@RamRaider