欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用Ajax请求后台数据,然后的时候出现Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0的错误。

程序员文章站 2022-03-20 19:03:05
首先来看下Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 的意思是:未捕获(在promise)语法错误:在JSON中。导致这个错误的原因是:出现这个报错提示,根本原因是--json解析异常,所以请大家直接去关注自己json的返回数据注意检查其返回内容和内容的格式是否正确。检查自己的php文件编写的是否正确,符合语法规范。即使编写的代码编写的没有问题,还是会出现这个...

首先来看下Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 的意思是:未捕获(在promise)语法错误:在JSON中。

导致这个错误的原因是:

  1. 出现这个报错提示,根本原因是--json解析异常,所以请大家直接去关注自己json的返回数据注意检查其返回内容和内容的格式是否正确。

  2. 检查自己的php文件编写的是否正确,符合语法规范。

  3. 即使编写的代码编写的没有问题,还是会出现这个问题!

JS的ajax的请求方式:

        

ajax_post(url_show, data_show).then(function (reset) {
  console.log(reset)  // 显示数据
  let resh = JSON.parse(reset)
  console.log(resh) //显示数据
  create_item(resh)

PHP的代码模块:

        下面的代码都是正确的。

<?php 
  //获取前端发来的数据
  $username = $_POST["username"];
  header("content-type:text/html;charset=utf-8");
  //  设置头  字符集 
   header("Content-type: application/json");
  //    //跨域
  header('Access-Control-Allow-Origin: *');
  header('Access-Control-Allow-Credentials: true');
  header("Access-Control-Allow-Headers: Origin); X-Requested-With, Content-Type, Accept");
  header("Access-Control-Request-Methods:GET, POST, PUT, DELETE, OPTIONS");
  $db = new mysqli("localhost","root","root","XXX");
$sql = "SELECT * FROM XXX WHERE username='{$username}'";

  
  $result = $db->query($sql);
	$arr = [];
	while( $row = $result->fetch_array( MYSQLI_ASSOC)){
		array_push($arr,$row);
	}
  echo  json_encode($arr);
?>

错误显示:

 

使用Ajax请求后台数据,然后的时候出现Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0的错误。

下面是我修改之前的代码形式:

  $db = new mysqli("localhost","root","root","mogujie");
  $sql = "SELECT * FROM mycar WHERE username='{$username}'";
  $result = $db->query($sql)
	$arr = [];
	while( $row = $result->fetch_array( MYSQLI_ASSOC)){
		array_push($arr,$row);
	}
  echo  json_encode($arr);

在php代码中,会以下几种形式,会出现Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0。

  1. php语法书写的不规范,在php语言中,每一条语句结束之后,要加上一个   “ ; ”分号。切记,我吃过不少亏
  2. 后端获得数据在转给前端使用,数据必须是JSON格式,这是注定的,所以在php编写的代码,然后给前端使用的时候,使用 json_encode()转成json数组。 然后前端再转成json对象数组。

 在js代码中,会以下几种形式,会出现Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0。

      就是json

最后一个问题:就是即使php和js文件写的没有任何的问题,但是呢依然 会出现Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0的报错。  

这是浏览器的缓存的原因,因为你在js/php代码中 保存了,而浏览器还没有反应过来,使用的是之前的提交过来的代码显示。这时候这么看我保存过后的代码,是否显示了呢。

   按F12 (如果有的用户按F12没有用   那是因为你的  你解锁了功能,按Fn+Esc组合键  上锁)或者单击右键 检查,找到Sourcse下面的js或者php文件 ,如果有  继续检查 程序代码,如果没有  Ctrl+F5 强制清除缓存。然后就好了。

 

感谢关注!

本文地址:https://blog.csdn.net/liliang250/article/details/109235911