百度分享到新浪微博:414 Request-URI Too Large

关于百度分享到新浪微博报错“414 Request-URI Too Large”的原因及解决办法

错误信息来自百度分享专业开发版(即自定义分享),当点击分享到“新浪微博”跳转的时候报错。

报错信息

414 Request-URI Too Large

The server returned an invalid or incomplete response. please try again later.

报错原因

通过查看分享到新浪微博跳转的URL,发现请求的地址栏里title的值是文章的内容。当浏览器对URL地址UrlEncode编码后,字符串会显得很长很长,因此报错!如图:

新浪微博跳转的地址栏过长
新浪微博跳转的地址栏过长

分析原因发现是由于使用专业开发版(自定义百度分享)导致,在配置组件common参数的时候有问题,具体参数是bdText

解决办法

HTML结构:

  1. <div class="bdsharebuttonbox" data-tag="share_1"> 
  2.     <a class="bds_mshare" data-cmd="mshare"></a> 
  3.     <a class="bds_qzone" data-cmd="qzone" href="#"></a> 
  4.     <a class="bds_tsina" data-cmd="tsina"></a> 
  5.     <a class="bds_baidu" data-cmd="baidu"></a> 
  6.     <a class="bds_renren" data-cmd="renren"></a> 
  7.     <a class="bds_tqq" data-cmd="tqq"></a> 
  8.     <a class="bds_more" data-cmd="more">更多</a> 
  9.     <a class="bds_count" data-cmd="count"></a> 
  10. </div> 

Javascript代码(关键看bdText):

  1. window._bd_share_config = { 
  2.     common : { 
  3.         bdText : '自定义分享内容',//注意此行,解决新浪分享的问题(建议此行获取摘要而不是内容) 
  4.         bdDesc : '自定义分享摘要',  
  5.         //bdUrl : '自定义分享url地址', 
  6.         //bdPic : '自定义分享图片' 
  7.         bdStyle: 1 
  8.     }, 
  9.     share : [{ 
  10.         bdSize : 16 
  11.     }], 
  12.     slide : [{      
  13.         bdImg : 0, 
  14.         bdPos : "right"
  15.         bdTop : 100 
  16.     }], 
  17.     image : [{ 
  18.         viewType : 'list'
  19.         viewPos : 'top'
  20.         viewColor : 'black'
  21.         viewSize : '16'
  22.         viewList : ['weixin','qzone','tsina','tqq','huaban'
  23.     }], 
  24.     selectShare : [{ 
  25.         bdselectMiniList : ['weixin','qzone','tsina','tqq','huaban'
  26.     }] 

将配置参数bdText的值换成“文章摘要”后问题解决,但是这和配置参数的描述感觉有点矛盾啊!

估计百度分享和第三方新浪微博之间的兼容性衔接不是很好吧,或者哪位大神有这方面的经验还请不吝赐教!

成功分享到新浪微博
成功分享到新浪微博

 

 

 

相关经验

导读书签
书签初始化中…