`
Fonkie
  • 浏览: 67724 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

是什么样的空白字符导致我的Ajax请求出现parseerror错误?

阅读更多

 

一、为啥jQuery的ajax请求成功却总是执行error方法?

 

需要完成一个局部刷新页面的功能,选择jQuery的ajax方法获取数据,代码如下:

 

                $.ajax({
                     url:url,
                     data:p,
                     dataType:"json",
                     type:"post",
                     success:function(json){
                         if(typeof(opts.okHandle)=="function") {
                             opts.okHandle(json);
                         }

                     },
                     error:function(xmlReq,err){
                         if(typeof(opts.errHandle)=="function"){
                             opts.errHandle(xmlReq,err);
                         }
                     }
                 });
 

 

 

在测试的过程中发现ajax请求完成之后并没有如期执行success方法,利用firebug设置断点才发现原来是执行了error方法,并且抛出了一个parseerror的错误,原来是在对响应值(resonseText)的内容进行json格式转换的时候出现问题了。

 


 

二、响应值(resonseText)的哪个字符出了问题?

 

利用json格式化工具(http://jsonformatter.curiousconcept.com/),检查resonseText的值,终于发现这串有问题的字符:

<p class=\"ugc\">12、 开心一笑:辩护人:裴日红你是否敢问证人讯问时是否对你进行了刑讯逼供?裴日红:“敢”,审判长:“辩护人!这个程序是你启动还是法庭启动?”哈哈。。。</p>

 

继续定位,最终确定“12、”与“开心一笑”之间的空白是罪魁祸首!


 

 

三、出问题的空白字符是什么?

 

这个空白究竟是什么字符,造成格式化json失败?利用NATIVE/ASCII编码互转工具(http://tool.chinaz.com/Tools/native_ascii.aspx),发现空白的ASCII代码为“\u0009

 


 

\u0009水平制表符的Unicode编码,它对应的转义字符为\t。终于真相大白了。

 

四、是水平制表符(\u0009)导致了json格式转换失败!

 

小提示:一般在网页的输入框内手动无法输入水平制表符,可以利用记事本先输入一个字符串,在字符串的中间按一下键盘的“Tab”键即可,然后通过复制粘贴进行测试。

 

 

 

 

 

 

  • 大小: 60.4 KB
  • 大小: 49.1 KB
  • 大小: 26.9 KB
分享到:
评论

相关推荐

    完美解决ajax跨域请求下parsererror的错误

    ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, 在很多时候,即使ajax提交、返回都正常 XMLHttpRequest.status=200 (正常响应) XMLHttpRequest.readyState=4 (正常接收) ajax也会提示一个parse...

    空格或者空白字符导致$.ajax()报parseerror错误小结

    然而,在数据传输过程中,特别是处理JSON格式数据时,经常会遇到解析错误(parseerror),这种错误的常见原因之一,就是空格或者空白字符的不当使用。 首先,我们需要明确什么是parseerror。在$.ajax()方法中,如果...

    Ajax异步请求的验证

    3. **错误处理**:对于可能出现的网络错误或服务器错误,应设置适当的错误处理。例如: ```javascript xhr.onerror = function() { console.error('Ajax请求出错'); }; xhr.ontimeout = function() { console....

    解决spring mvc 返回json数据到ajax报错parseerror问题

    最近使用ajax接收spring mvc传过来的json数据时总是出现parseerror的错误,下面通过本文给大家分享spring mvc 返回json数据到ajax报错parseerror问题的解决方法,需要的朋友参考下吧

    基于JSON的AJAX请求案例

    **基于JSON的AJAX请求案例** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个页面的情况下更新部分网页的技术。而JSON(JavaScript Object Notation)是轻量级的数据交换格式,它使得...

    ajax请求后台接口数据与返回值处理js的实例讲解

    在$.ajax方法中,error回调函数用于处理请求过程中可能发生的错误,例如网络问题或服务器错误。通过这个回调函数,开发者可以执行错误处理的逻辑,比如显示错误信息给用户或记录错误日志。 知识点九:AJAX请求的...

    第2节 ajax请求第三方接口天气预报案例.rar

    然而,也要注意避免因过多请求导致服务器压力过大,适时使用缓存策略优化性能。 9. 跨域请求: 由于同源策略限制,JavaScript默认不能向其他域名发送AJAX请求。为解决这个问题,第三方API通常支持CORS(跨源资源...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...

    在外部方法使用Ajax请求返回的数据

    在JavaScript的世界里,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。jQuery是一个强大的JavaScript库,它简化了...

    ajax返回字符串

    在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。Ajax返回字符串是Ajax交互过程中一个常见的场景,它涉及到JavaScript、HTTP请求和响应处理等多个...

    Ajax Get、Post请求

    在Ajax中,使用GET请求时,请求的数据会被附加到URL后面,以问号分隔,形成一个查询字符串。这种方式限制了请求的大小,因为URL长度有限。以下是一个简单的Ajax GET请求示例: ```javascript var xhr = new ...

    平台java前端ajax,json请求

    本话题主要关注在Web平台中,使用Java后端和JavaScript前端进行JSON数据交互的过程,具体涉及到AJAX(Asynchronous JavaScript and XML)技术以及JSON(JavaScript Object Notation)数据格式。 **1. AJAX**:AJAX ...

    ajax的js,jq jsonp,的请求方式

    **Ajax技术** Ajax,全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心在于利用JavaScript创建XMLHttpRequest对象,通过这个...

    ajax请求复杂的json数据实例

    在现代Web开发中,AJAX...在实际应用中,你可能还需要处理错误、设置超时、携带认证信息等问题,这些都是AJAX请求中常见的扩展话题。通过不断的实践和学习,你可以更好地掌握这些技术,提高Web应用的用户体验。

    ajax 错误代码

    然而,在实际应用中,我们可能会遇到各种错误情况,这些错误可能是由于语法错误、网络问题、服务器端问题或是资源权限问题导致的。标题提到的“ajax错误代码”就是指在使用AJAX时遇到的问题。 首先,让我们深入了解...

    Ajax异步请求

    **Ajax异步请求详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,大大提升了用户体验。...

    PHP 和 AJAX

    8. **调试技巧**:开发者可以利用浏览器的开发者工具查看AJAX请求的详细信息,如请求头、响应内容、网络状态等,这对于调试非常有帮助。 通过以上介绍,我们可以看出PHP与AJAX的结合使用能大幅提升Web应用的用户...

    ajax 示例源码(经典)

    5. **错误处理**:在源码中,还会看到如何处理可能出现的错误,比如网络问题或服务器返回错误状态。这通常通过`onerror`或`ontimeout`事件来实现。 6. **跨域请求**:如果Ajax请求跨越了同源策略的限制,就需要用到...

Global site tag (gtag.js) - Google Analytics