zoukankan      html  css  js  c++  java
  • 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排查错误花了三个小时时间。无语了
    */
    
  • 相关阅读:
    DPDK安装方法 17.12.13
    numa.h:No such file or directory 解决方法
    17秋 软件工程 第六次作业 Beta冲刺 Scrum3
    17秋 软件工程 第六次作业 Beta冲刺 总结博客
    17秋 软件工程 第六次作业 Beta冲刺 Scrum2
    Paper Reviews and Presentations
    17秋 软件工程 第六次作业 Beta冲刺 Scrum1
    17秋 软件工程 第六次作业 Beta冲刺
    error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/share': Operation not permitted
    17秋 软件工程 个人作业 软件产品案例分析
  • 原文地址:https://www.cnblogs.com/hnbiao/p/7207158.html
Copyright © 2011-2022 走看看