admin管理员组文章数量:1419624
I get
Uncaught SyntaxError: Unexpected token < x.extend.parseJSON jQuery.js:4
$.ajax.success Login.js:15
c jQuery.js:4
p.fireWith jQuery.js:4
k jQuery.js:6
r
The jQuery is a fresh download and the error with my login js is on this line
var json = jQuery.parseJSON(data);
edit here is the login php page, if you need the javascript just tell me. Also would you say this is more effective than having a standard form and page set up:
<?php
require("./../config.php");
if (!isset($_POST['req']))
{
die("No request provided.");
}
else
{
if ($_POST['req'] == "login")
{
$json = array("success"=>false, "msg"=>"", "req"=>"login");
if (!isset($_POST['user']) || empty($_POST['user']))
{
$json['success'] = false;
$json['msg'] = "No user provided";
}
else
{
if (!isset($_POST['pass']) || empty($_POST['pass']))
{
$json['success'] = false;
$json['msg'] = "No password provided";
}
else
{
$user = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['pass']);
$password = hash("sha512", $password);
$query = mysql_query("SELECT `id` FROM `users` WHERE `username` = '" . $user . "' AND `password` = '" . mysql_real_escape_string($password) . "' LIMIT 1");
if (mysql_num_rows($query))
{
$sessID = mysql_real_escape_string(session_id());
$hash = mysql_real_escape_string(hash("sha512", $sessID.$_SERVER['HTTP_USER_AGENT']));
$userData = mysql_fetch_assoc($query);
$expires = time() + (60 * 15);
mysql_query("INSERT INTO `active_users` (`user`, `session_id`, `hash`, `expires`) VALUES (" . (int) $userData['id'] . ", '" . $sessID . "', '" . $hash . "', " . $expires . ")");
$json['success'] = true;
$json['msg'] = "Logged in";
}
else
{
$json['success'] = false;
$json['msg'] = "Username or password are incorrect.";
}
}
}
print(json_encode($json));
}
}
?>
I get
Uncaught SyntaxError: Unexpected token < x.extend.parseJSON jQuery.js:4
$.ajax.success Login.js:15
c jQuery.js:4
p.fireWith jQuery.js:4
k jQuery.js:6
r
The jQuery is a fresh download and the error with my login js is on this line
var json = jQuery.parseJSON(data);
edit here is the login php page, if you need the javascript just tell me. Also would you say this is more effective than having a standard form and page set up:
<?php
require("./../config.php");
if (!isset($_POST['req']))
{
die("No request provided.");
}
else
{
if ($_POST['req'] == "login")
{
$json = array("success"=>false, "msg"=>"", "req"=>"login");
if (!isset($_POST['user']) || empty($_POST['user']))
{
$json['success'] = false;
$json['msg'] = "No user provided";
}
else
{
if (!isset($_POST['pass']) || empty($_POST['pass']))
{
$json['success'] = false;
$json['msg'] = "No password provided";
}
else
{
$user = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['pass']);
$password = hash("sha512", $password);
$query = mysql_query("SELECT `id` FROM `users` WHERE `username` = '" . $user . "' AND `password` = '" . mysql_real_escape_string($password) . "' LIMIT 1");
if (mysql_num_rows($query))
{
$sessID = mysql_real_escape_string(session_id());
$hash = mysql_real_escape_string(hash("sha512", $sessID.$_SERVER['HTTP_USER_AGENT']));
$userData = mysql_fetch_assoc($query);
$expires = time() + (60 * 15);
mysql_query("INSERT INTO `active_users` (`user`, `session_id`, `hash`, `expires`) VALUES (" . (int) $userData['id'] . ", '" . $sessID . "', '" . $hash . "', " . $expires . ")");
$json['success'] = true;
$json['msg'] = "Logged in";
}
else
{
$json['success'] = false;
$json['msg'] = "Username or password are incorrect.";
}
}
}
print(json_encode($json));
}
}
?>
Share
Improve this question
edited Jun 18, 2013 at 20:06
user2498606
asked Jun 18, 2013 at 19:59
user2498606user2498606
212 silver badges3 bronze badges
9
- 2 And the data being parsed looks like...? – j08691 Commented Jun 18, 2013 at 20:00
- Post your code along with the JSON data here. – Harsha Venkataramu Commented Jun 18, 2013 at 20:00
-
Clearly
data
isn't valid JSON. What doesconsole.log(data);
show? – gen_Eric Commented Jun 18, 2013 at 20:03 -
1
It sounds like
data
might be some HTML-based error page sent from the web server instead of the json resource you really wanted. – Chris Farmer Commented Jun 18, 2013 at 20:04 - As other's have said, post the data you are getting back. I have seen this type of error because the server is returning a 404 or 500 error page and the ajax call is trying to parse the HTML ing back when it is expecting JSON to e back. – John Koerner Commented Jun 18, 2013 at 20:05
1 Answer
Reset to default 4From jQuery 1.9 onwards, the $.parseJSON
will throw a JavaScript error rather than returning null
. So your json isn't valid to show that error.
From jQuery Docs:
"Prior to jQuery 1.9, $.parseJSON returned null instead of throwing an error if it was passed an empty string, null, or undefined, even though those are not valid JSON."
To shield your JS from throwing error, do the following:
try {
var json = $.parseJSON(data);
//if code below here runs, means json is valid
} catch(e){
//if code below here runs, means json is invalid
}
Ps.: Post your JSON so we can tell what is the problem. You can do by adding console.log(data);
before the try
(if you use my code).
本文标签: javascriptUncaught SyntaxError Unexpected token ltStack Overflow
版权声明:本文标题:javascript - Uncaught SyntaxError: Unexpected token < - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745314491a2653088.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论