FreeOZ论坛

标题: 发现个问题,不能回复 [打印本页]

作者: 妞爸    时间: 23-7-2013 12:31
标题: 发现个问题,不能回复
firefox
如果进入一个帖子回帖,ok。然后我想再灌个水,点发表帖子,发不出去。(不是间隔15秒的问题,是没有任何提示)
作者: 妞爸    时间: 23-7-2013 12:32
再试试看行不行
作者: 妞爸    时间: 23-7-2013 12:33
确实是有这样的情况
我再回复就不行了

补充内容 (23-7-2013 12:33):
这个是刷新过页面后才发上去的
作者: ubuntuhk    时间: 24-7-2013 12:33

谢谢妞爸的反馈,我也发现这个问题了,chrome也有同类问题,暂时还不知道什么原因。
作者: cais    时间: 24-7-2013 22:01
我来试试看。。
作者: cais    时间: 24-7-2013 22:16
再来一次
作者: cais    时间: 24-7-2013 22:38
问题出在/static/js/common.js里面。
每次Form submit的时候,它都要调用hostconvert()把form.action的relative url变成absolute url。。
在hostconvert里面,它只看进来的url是不是http开头的,不是就加上SITEURL。但是现在SITEURL只是/ibbs/而已,没有包括前面完整的hostname, http://www.freeoz那块。
所以加了再次之后,form action就变成/ibbs/ibbs/forum.php...结果就不行了。
  1. function hostconvert(url) {
  2.         if(!url.match(/^https?:\/\//)) url = SITEURL + url;
  3.         var url_host = getHost(url);
  4.         var cur_host = getHost().toLowerCase();
  5.         if(url_host && cur_host != url_host) {
  6.                 url = url.replace(url_host, cur_host);
  7.         }
  8.         return url;
  9. }
复制代码
按道理应该是把SITEURL弄成带hostname的。我记得上次好像也是这个问题,后来ub已经改好了。
不行的话,也可以再加个条件判断,看是不是/开头的。是,也不加SITEURL。
  1. if(!url.match(/^https?:\/\//) && !url.match(/^\//)) url = SITEURL + url;
复制代码
另外getHost()这个function好像有问题。一开始默认的host应该是赋值null,不是"null"吧。现在这样,搞得在hostconvert里面,明明url里面没有hostname,还是会跑一遍url = url.replace那句,只是因为"null"没有在url里面出现,所以没有replace到什么,url的值没有变。
作者: ubuntuhk    时间: 25-7-2013 01:16
测试一下修改完的代码
作者: ubuntuhk    时间: 25-7-2013 01:19
再次测试一下修改完的代码
作者: ubuntuhk    时间: 25-7-2013 01:19
再次测试一下修改完的代码
作者: ubuntuhk    时间: 25-7-2013 01:19
现在ok了,@cais 太有才了
作者: ubuntuhk    时间: 25-7-2013 01:21
cais 发表于 24-7-2013 22:38
问题出在/static/js/common.js里面。
每次Form submit的时候,它都要调用hostconvert()把form.action的rel ...

我把下面这一行直接给注释了:

  1. //if(!url.match(/^https?:\/\//)) url = SITEURL + url;
复制代码
getHost()这个函数我暂时没懂,呼 @老鼠爱上猫 来帮忙看看是否要改。
作者: ubuntuhk    时间: 25-7-2013 01:22
妞爸 发表于 23-7-2013 12:32
再试试看行不行

@妞爸 现在再试试看。
作者: 周星星1832    时间: 25-7-2013 11:34
最近没看到MICHELLE,大概暂时不来,用你的名字测试一下
@MICHELLE07  
作者: cais    时间: 25-7-2013 23:33
我来试试看。
作者: cais    时间: 25-7-2013 23:33
再试试。。。
作者: cais    时间: 25-7-2013 23:33
好像可以了耶
作者: cais    时间: 25-7-2013 23:35
ubuntuhk 发表于 25-7-2013 01:21
我把下面这一行直接给注释了:getHost()这个函数我暂时没懂,呼 @老鼠爱上猫 来帮忙看看是否要改。

嗯。它这一块用的不是一般的ajax。是用一个隐藏的iframe做target,直接用普通的form submit,所以不需要把相对的url换成绝对的url。
作者: 妞爸    时间: 27-7-2013 00:13
hoho,我一转头下去引出不少大牛
作者: 妞爸    时间: 27-7-2013 00:15
我再试试看
作者: 妞爸    时间: 27-7-2013 00:16
好像可以了

作者: 妞爸    时间: 27-7-2013 00:16
你确定吗?
作者: 妞爸    时间: 27-7-2013 00:17
我确定
作者: ubuntuhk    时间: 27-7-2013 10:18
妞爸 发表于 27-7-2013 00:17
我确定


谢谢妞爸帮忙抓虫~~




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/bbs/) Powered by Discuz! X3.2