<?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的更多相关文章

  1. js解析json报错Unexpected token i in JSON at position 1

    因为后台json是手动拼接的,在拼接时偷了懒,不想转义,所以就用了单引号,结果js解析时悲催了 这里记录一下,被解析的json字符串必须键值对都用双引号包起来,必须是双引号 默默罚抄一百遍

  2. 【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 很讨 ...

  3. 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()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因.可是这次又碰到了,所以这次我必须要弄明白 ...

  4. js解析json时报:Unexpected token s in JSON at position 0

    原因肯定是返回的json格式有问题 最有可能是后台在程序执行过程中,输出了某些调试信息等等,这些输出的字符串和json拼接成了新的字符串来解析,这时就会报错: 比如我在入口文件里var_dump了__ ...

  5. Unexpected token u in JSON at position 0

    文章目录 1.1 错误原因: 1.2 解决思路: 1.1 错误原因: 因为JSON.parse()不能解析字符串中的undefined 出错的结果:某一行的这个字段的值为空,就会报错,整个表格都显示不 ...

  6. node模拟后台返回json书写格式报错--Unexpected token ' in JSON at position 1

    最近在学习Node的知识,就尝试写了一个注册登陆的简单功能,但是自己在模拟后台返回值的时候,总是报错Unexpected token ' in JSON at position 1,查找原因之后,是因 ...

  7. webpack打包报错Unexpected token

    最近项目要上线,需要对项目进行打包部署到服务器上面,在打包过程中npm run build后出现以下报错Unexpected token: punc (() [./~/_element-ui@1.4. ...

  8. electron-vue 引入OpenLayer 报错 Unexpected token export

    electron-vue 引入OpenLayer 报错 Unexpected token export 解决办法: 在 .electron-vue/webpack.renderer.config.js ...

  9. 关于Uncaught SyntaxError: Unexpected token o in JSON at position 1,chrome持续报错的相关解析

    今天跟大家分享我前两天遇见的一个BUG,说出来很难受,因为这个BUG花了我一个多小时去找原因,后来莫名其妙的故障消失了,强迫症犯了的我,居然花了2个多小时去故意再制造这个BUG,只想弄明白WHY??? ...

随机推荐

  1. IOS开发学习笔记015-block和protocol

    一.block block 代码段    标识是 ^    block 和函数很像 1.可以保存代码 2.有返回值 3.有形参 格式 返回值 (block名)(形参列表) = ^(形参列表) {代码段 ...

  2. STL学习笔记5--map and multimap

    Maps是一种关联式容器,包含“关键字/值”对. Multimaps和maps很相似,但是MultiMaps允许重复的元素. 简单介绍: 1.声明,首先包含头文件 “map” map <int, ...

  3. 解决pymysql不能实时查询最新的数据

    #在网上查询到的原因为: InnoDB 的默认隔离级别.它可以防止任何被查询的行被其他事务更改,从而阻止不可重复的读取,而不是 幻读取.它使用中度严格的锁定策略,以便事务内的所有查询都会查看同一快照中 ...

  4. Mac 因误使用chmod -R 777 命令更改 /usr/bin 造成终端不能实用,提醒进程已结束的完美解决方案!

    1.不用删除任何文件. 2.启动root用户权限 4.在用root用户登进去 5.在root用户中使用终端输入命令 chown root:wheel /usr/bin/login chmod u+s ...

  5. [oldboy-django][2深入django]django 官方中文文档 --扩展User

    https://docs.djangoproject.com/en/2.0/topics/auth/customizing/#extending-the-existing-user-model # 另 ...

  6. [转]手写数字识别错误NameError: name 'mnist' is not defined

    转自:https://blog.csdn.net/coder_Gray/article/details/78562382 在Tensorflow上进行mnist数字识别实例时,出现如下错误 NameE ...

  7. mysql里制造一个错误

    最近突然想到的,由于在触发器中执行失败事务性表会自动回滚. 所以就想制造一个错误,在群里问了问最后还真得到一个制造错误的方法,或者可以叫做自定义异常 SIGNAL SQLSTATE ' SET MES ...

  8. 【HDU 1711 Number Sequence】

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission ...

  9. redis windows安装

    下载:https://github.com/MicrosoftArchive/redis/releases 命令行启动:redis-server.exe redis.windows.conf 以服务启 ...

  10. Codeforces 920E Connected Components? 补图连通块个数

    题目链接 题意 对给定的一张图,求其补图的联通块个数及大小. 思路 参考 ww140142. 维护一个链表,里面存放未归入到任何一个连通块中的点,即有必要从其开始进行拓展的点. 对于每个这样的点,从它 ...