- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我对我正在处理的这段代码有疑问。我一直在使用在下面的链接中找到的聊天功能。当我将它集成到我的应用程序中使用时,它工作得很好,尽管我在修改它时遇到了麻烦。然而,为了为我的网站创建用户历史记录功能,我开始使用相同的基本系统但使用不同的变量重新创建此功能。但是我似乎无法理解为什么会出现此错误。
Uncaught SyntaxError: Unexpected token < in JSON at position 2
at JSON.parse (<anonymous>)
at Object.<anonymous> (userhistory.js:21)
at i (jquery-2.2.3.min.js:2)
at Object.fireWith [as resolveWith] (jquery-2.2.3.min.js:2)
at z (jquery-2.2.3.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-2.2.3.min.js:4)
这很奇怪,因为原始版本和我的版本几乎相同,但有一些差异,但是我的版本给了我这个语法错误。我在这里读过一些类似的帖子,但除了说以不同的方式做之外,没有人真正回答了我的问题。但由于相同的语法已经适用于略有不同的变量,因此我倾向于找出为什么我的语法不起作用。任何帮助,将不胜感激。我发布了下面工作版本的代码,并且发布了我用来测试的简单 html 文档。我已经一个字符一个字符地检查了我的字符,以确保我没有错过任何东西,在我单击此处的帖子之前,我加倍努力,只是为了防止最终的菜鸟失败。预先感谢各位。
用户历史记录.js
var userID = 0;
$(document).ready(function() {
$('#btnSend').click(function(){
updateHistory();
$('#input').val("");
});
startHistory();
});
function startHistory(){
setInterval(function(){ getHistory(); }, 2000);
}
function getHistory(){
$.ajax({
type: "GET",
url: "/refreshhistory.php?userID="+userID
}).done(function( data )
{
var jsonData = JSON.parse(data); <-- This is where the debugger shows an error
var jsonLength = jsonData.results.length;
var html = "";
for (var i = 0; i < jsonLength; i++) {
var result = jsonData.results[i];
html += '<div id="tb-testimonial" class="testimonial testimonial-primary-filled">'+'<div class="testimonial-section">(' + result.actionDate+ ') <b>' + result.userID +'</b>: '+result.action+ '</div>'+'</div>'+'<div class="input-group">'+'<hr/>'+'</div>';
userID = result.userID;
}
$('#view_history').append(html);
});
}
function updateHistory(){
var input = $('#input').val();
if(input != ""){
$.ajax({
type: "GET",
url: "/newhistory.php?action="+encodeURIComponent( input )
});
}
}
messages.js
var lastTimeID = 0;
$(document).ready(function() {
$('#btnSend').click(function(){
sendChatText();
$('#chatInput').val("");
});
startChat();
});
function startChat(){
setInterval(function(){ getChatText(); }, 2000);
}
function getChatText(){
$.ajax({
type: "GET",
url: "/refresh.php?lastTimeID="+lastTimeID
}).done(function( data )
{
var jsonData = JSON.parse(data);
var jsonLength = jsonData.results.length;
var html = "";
for (var i = 0; i < jsonLength; i++) {
var result = jsonData.results[i];
html += '<div id="tb-testimonial" class="testimonial testimonial-primary-filled">'+'<div class="testimonial-section">(' + result.chattime+ ') <b>' + result.usrname +'</b>: '+result.chattext+ '</div>'+'</div>'+'<div class="input-group">'+'<hr/>'+'</div>';
lastTimeID = result.id;
}
$('#view_ajax').append(html);
});
}
function sendChatText(){
var chatInput = $('#chatInput').val();
if(chatInput != ""){
$.ajax({
type: "GET",
url: "/submit.php?chattext=" + encodeURIComponent( chatInput )
});
}
}
HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>JavaScript Alert</h2>
<div class="col-sm-6" id="view_history">
</div>
<div class="input-group">
<div class="btn btn-secondary" id="ajaxForm">
<input type="text" class="input-large search-query" id="input" /><input type="button" class="btn btn-primary btn-sm" value="Send" id="btnSend" />
</div>
</div>
<script type="text/javascript" src="../assets/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script type="text/javascript" src="userhistory.js"></script>
</body>
</html>
刷新历史记录.php
<?php
session_start();
require_once("/dbconnect.php");
require_once("/userhistoryclass.php");
$userID = intval($_GET['userID'] );
$jsonData = userHistoryClass::getuserHistory($userID);
print $jsonData;
?>
按照要求,我直接进入refreshhistory.php?userID=my_ID并得到结果
{"results":[{"accountID":"ba7c7ed76e0270fdf1a0a616d3c02849","action":"dasdfadsfasdfasdf","actionDate":"02:34:22"},{"accountID":"ba7c7ed76e0270fdf1a0a616d3c02849","action":"DASDFDFDFD","actionDate":"03:15:02"}]}
这样就可以了,但是解析问题仍然存在。只是想更新一下。
所以我的问题是我没有调用 JS 文件中的正确位置,我假设 js 像 PHP 一样工作并且会识别它所在的文件夹,所以我没有对特定文件夹添加额外的引用。新手错误。感谢詹姆斯和杰夫帮助我弄清楚我还有很长的路要走:)
最佳答案
我已经遇到了同样的问题:
我这样做了:
$.get('ping', function(response) {
console.log(typeof response);
var res = JSON.parse(response);
if (res.showButton) {
var temps = res.time; // 'matin' or 'soir'
...其余代码。
当我运行它时,我得到:
VM13008:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at Object.success (new:21)
at i (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at A (jquery.min.js:4)
at XMLHttpRequest.<anonymous> (jquery.min.js:4)
和你一样的错误。
我点击此处VM13040:1我看到:[object Object]。
我认为问题可能是转换的问题(我不确定)。
要解决这个问题,只需这样做:
省略:
var jsonData = JSON.parse(data);
并根据您的情况直接使用response
;data
。
就我而言,代码如下所示:
function pingServer() {
console.log('to ping');
$.get('ping', function(response) {
console.log(typeof response);
if (response.showButton) {
var temps = response.time; // 'matin' or 'soir'
...其余代码。
关于javascript - 未捕获语法错误 : Unexpected token < in JSON at position 2 at JSON. 在对象处解析 (<anonymous>)。<anonymous> (userhistory.js:23),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44295077/
我刚开始使用 html5 和 css,我对使用 css position 有点困惑。 我可以从堆栈溢出中找到这些链接, Difference between relative and absolute
我想知道是否有一种方法可以获得相对定位的元素的“绝对位置”。我想不出任何方法,但也许有人想出了一个方法...... 最佳答案 我不确定“绝对位置”是什么意思,但您可以使用 el.getBounding
基本上我的 HTML(使用 Bootstrap 类)中有一个页面,其中包含使用 thumbnail 和 caption 类展示的产品。在产品图片上方有一个 ON SELL(圆形红色标签)。我给这个红色
当我使用 BaseAdapter 的 ListView 离开屏幕时,每一行不再保持连续的位置。除了这个我不知道还能怎么解释。 如果我的 BA/LV 在屏幕上显示 4 个项目,并且我添加了一个显示每一行
此 HTML 无法在 IE8 中正确呈现。它适用于 Firefox、Opera、IE7、IE9 和 IE10。 (当然,它在 IE6 中也不起作用,因为它涉及固定位置的元素。) 实际上它在 Chrom
我正在使用Position Absolute的表单验证引擎。 我有一个特定的验证案例,希望可以为我解决。我需要能够根据另一个字段的值来使一个字段成为必需。 例如: If country.dropdow
我看过很多帖子,人们希望将相机位置调整到屏幕位置。我的问题是如何做相反的事情。 我目前想要实现的是将“门”位置设置为屏幕的百分比,此计算已准备就绪,并且我确实有最终屏幕的 X、Y (px) 位置。相机
谁能解释一下使用 position:relative、position:absolute 和 float 对正常文档流及其子项的影响的区别? 例如当我有三个元素 A、B、C 时,其中 A 是包含 B
我有以下代码: .tabs{ position: fixed; top:110px; left:0px; width:40px; z-inde
我不知道如何表达这个问题。 所以这是一个例子。 图层上的动画滑入 View ,然后稍微弹回。 十分简单。 位置关键帧看起来像这样: 关键帧 0:(-100,200) 关键帧 10:(100,200)
我是 XSLT 的新手,我正在使用 w3schools 的“自己尝试”页面进行一些测试。我正在使用以下演示: http://www.w3schools.com/xsl/tryxslt.asp?xmlf
我试图让一个对象 1 (SKSpriteNode) 在某个高度(y 坐标)处创建另一个对象 (object2)。我已经得到了我需要的所有代码,除了我不知道如何正确编写: object1.positio
.special p { display:none; } .special:hover p { display:block; } Things
当将一个绝对定位元素放置在一个位置固定包装器中时,在一个位置相对包装器中,绝对元素位置不应该相对于相对 parent 而不是固定 parent ? Content
我有一个 iframe,它在应用 css 后显示谷歌地图 position: relative; top: 48px; left: -233px; 但是当我向下滚动时,它刚好出现在显示 khaleej
我在一个网站上工作,有一个带有 position:relative 的父元素,它有一个带有 position:absolute 的子元素。令我感到奇怪的是,对于我提到的位置,子元素似乎仍然可以识别它们
我有一个 main 元素,我已将其设置为 position: relative。这包含两个 div,然后我在其上应用 position: absolute。然后,这会导致夹在 main 元素中间的页眉
HTML 代码由一个 div 组成,它具有两种类型的类:“隐藏”和“保留”。 Lorem ipsum dolor sit amet, consectetur adipis
我必须开发一个生成表格(有点……)的软件,并且必须提供对元素位置的完全控制。 到目前为止,我们有这样的构造: 还有一些javascript代码来放置#a , #b和 #c #co
我尝试将 z-index 设置为 body 下的某些位置为 fixed 的元素 示例如下: HTML menu content ....
我是一名优秀的程序员,十分优秀!