JS请求报错:Unexpected token T in JSON at position 0
<?php
/*
最近做一个ajax validate表单验证提交的代码,在ajax提交的时候
JS请求报错:Unexpected token T in JSON at position 0 描述: 这是一个请求,参数的地方报这要的错,请问是为什么?
百思不得其解啊
解决方案1: 去看下json的格式要求,JSON.parse()方法对json串要求很严格
解决方案2: http://www.bejson.com/
用这个网址测试试试json格式是不是有误,换行,单引号什么的会导致报错,格式要求很严格 以下会导致报错:
JSON字符串里的非数字型键值没有双引号
JSON中存在t这样的制表符,看起来和空格一样,但是就是因为它的存在校验不通过。去掉就能过了。
编辑器有bom头也会造成
解决方案3: 某个地方用了JSON.parse,但是传入的参数不是一个合格的json字符串。 以上介绍了“ (javascript)JS请求报错:Unexpected token T in JSON at position 0”的问题解答,希望对有需要的网友有所帮助。 */ /**
*js ajax发送代码
*/ $.validator.setDefaults({
submitHandler: function() {
// alert("提交事件!");return false;
var query=new Object();
query.user_name=$('#user_name').val();
query.sex=$('#sex').val();
query.country=$('#country').val();
query.email=$('#email').val();
query.mobile=$('#mobile').val();
query.weixin=$('#weixin').val();
query.address=$('#address').val();
query.messages=$('#messages').val();
var url="/controller/apply.php";
$.ajax({
url:url,
type:"POST",
data:query,
dataType:"json",
success:function(res){
if(res.status==1){
alert(res.msg);
window.location.replace("http://www.fxbob.com/a/zhongwen/hezuohuoban/20170620/21.html");
}else{
alert(res.msg);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest);
// console.log(errorThrown);
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
complete: function(XMLHttpRequest, textStatus) {
this; // 调用本次AJAX请求时传递的options参数
}
});
return false;
}
}); /**
*php的ajax接收代码Apply.php如下:
*/ <?php
// header("Content-type: text/html; charset=utf-8");
define('DEDEMOB', 'Y');
require_once(dirname(__FILE__)."/../include/common.inc.php");
//加载邮件类
require_once(dirname(__FILE__)."/../include/Smtp.class.php");
if($_POST){
$data=$_POST;
$str=<<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Untitled Document</title>
</head>
<body>
<p>全名:{$data['user_name']}</p>
<p>性别:{$data['sex']}</p>
<p>国家:{$data['country']}</p>
<p>地址:{$data['address']}</p>
<p>邮箱:{$data['email']}</p>
<p>手机:{$data['mobile']}</p>
<p>微信:{$data['weixin']}</p>
<p>留言:{$data['messages']}</p>
</body>
</html>
EOT;
//ib@fxbob.com
//******************** 配置信息 ********************************
$smtpserver = "smtp.163.com";//SMTP服务器
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "hmb9981541@163.com";//SMTP服务器的用户邮箱
$smtpemailto = "ib@fxbob.com";//发送给谁
$smtpuser = "hmb9981541@163.com";//SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
$smtppass = "rainliu213";//SMTP服务器的用户密码
$mailtitle = "申请经纪人";//邮件主题
$mailcontent = $str;//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
// $smtp->debug = true;//是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
if($state){
$res['status']=1;
$res['msg']="提交成功,请等待申核";
}else{
$res['status']=0;
$res['msg']="网络忙,提交失败,请稍候再尝试";
}
echo json_encode($res);exit;
} /**
*最后在网上查了好多这方面的错误,排查到是这个apply.php文件带bom头导致json解析错误导致引起了,一个小小json排查错误花了三个小时时间。无语了
*/
JS请求报错:Unexpected token T in JSON at position 0的更多相关文章
- js解析json报错Unexpected token i in JSON at position 1
因为后台json是手动拼接的,在拼接时偷了懒,不想转义,所以就用了单引号,结果js解析时悲催了 这里记录一下,被解析的json字符串必须键值对都用双引号包起来,必须是双引号 默默罚抄一百遍
- 【MVC model 验证失效 】【Unexpected token u in JSON at position 0】【jquery-plugin-validation】
问题描述:mvc model 调用jquery-plugin-validation 实现 前台的数据验证,时报错 Unexpected token u in JSON at position 0 很讨 ...
- Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse (<anonymous>)
这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因.可是这次又碰到了,所以这次我必须要弄明白 ...
- js解析json时报:Unexpected token s in JSON at position 0
原因肯定是返回的json格式有问题 最有可能是后台在程序执行过程中,输出了某些调试信息等等,这些输出的字符串和json拼接成了新的字符串来解析,这时就会报错: 比如我在入口文件里var_dump了__ ...
- Unexpected token u in JSON at position 0
文章目录 1.1 错误原因: 1.2 解决思路: 1.1 错误原因: 因为JSON.parse()不能解析字符串中的undefined 出错的结果:某一行的这个字段的值为空,就会报错,整个表格都显示不 ...
- node模拟后台返回json书写格式报错--Unexpected token ' in JSON at position 1
最近在学习Node的知识,就尝试写了一个注册登陆的简单功能,但是自己在模拟后台返回值的时候,总是报错Unexpected token ' in JSON at position 1,查找原因之后,是因 ...
- webpack打包报错Unexpected token
最近项目要上线,需要对项目进行打包部署到服务器上面,在打包过程中npm run build后出现以下报错Unexpected token: punc (() [./~/_element-ui@1.4. ...
- electron-vue 引入OpenLayer 报错 Unexpected token export
electron-vue 引入OpenLayer 报错 Unexpected token export 解决办法: 在 .electron-vue/webpack.renderer.config.js ...
- 关于Uncaught SyntaxError: Unexpected token o in JSON at position 1,chrome持续报错的相关解析
今天跟大家分享我前两天遇见的一个BUG,说出来很难受,因为这个BUG花了我一个多小时去找原因,后来莫名其妙的故障消失了,强迫症犯了的我,居然花了2个多小时去故意再制造这个BUG,只想弄明白WHY??? ...
随机推荐
- IOS笔记048-数据存储
IOS数据存储的几种方式 XML属性列表(plist) 归档 Preference(偏好设置) NSKeyedArchiver归档(NSCodin ...
- IOS开发学习笔记041-UITableView总结1
一.UITableView的常用属性 1.分割线 // 分割线 self.tableView.separatorColor = [UIColorredColor]; // 隐藏分割线 self.tab ...
- [netty4][netty-transpot]Channel体系分析
Channel体系分析 接口与类结构体系 -- [I]AttributeMap, ChannelOutboundInvoker, Comparable -- [I]AttributeMap ---- ...
- selenium随笔
1.点击一个连接通常录制一个click命令,通常需要改变它到clickAndWait命令,确保案例暂停,新的页面完全被转载进来. 2.测试案例需要检查Web页的属性,需要assert和verify命令 ...
- kickstart配置文件详解和system-config-kickstart
kickstart是什么 许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可 ...
- Leetcode 587.安装栅栏
安装栅栏 在一个二维的花园中,有一些用 (x, y) 坐标表示的树.由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树.只有当所有的树都被绳子包围时,花园才能围好栅栏.你需要找到正好位于栅栏边 ...
- python技巧:拆分多层嵌套列表
方法一: >>> import itertools >>> a = [[1, 2], [3, 4], [5, 6]] >>> list(itert ...
- linux系统带宽监测脚本
服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需 ...
- Python之数据结构:字符串
一.字符串类型 1.普通字符串 s1='abef\neiwo' print s1 print type(s1) 结果: abef eiwo <type 'str'> 2.原始字符串 s2= ...
- 传送带(bzoj 1857)
Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度 ...