Ajax跨域post解决方案
最近在做一个Forum的API给其他产品调用,允许其他产品(和Forum不同域)显示Forum指定主题的post并可回复。
客户要求用Ajax来做,这就涉及到Ajax跨域的问题。
产品中已经在用jquery,我们理所当然地用$.getJSON()来实现了。
但测试发现一个问题:
(»阅读全文…)
最近在做一个Forum的API给其他产品调用,允许其他产品(和Forum不同域)显示Forum指定主题的post并可回复。
客户要求用Ajax来做,这就涉及到Ajax跨域的问题。
产品中已经在用jquery,我们理所当然地用$.getJSON()来实现了。
但测试发现一个问题:
(»阅读全文…)
上次做了一个小程序, 用到Flash加载同目录下的xml数据, 服务器经过ssl加密.
通过http访问时,所有浏览器(IE6/IE7/FF2/FF3/Opear9/Chrome)都没问题, 但通过https访问时,IE6始终加载不到数据.
而且我在Flash中调试时尝试加载https://mail.google.com的数据,居然也能成功.(放在网站目录测试则不成功,这个应该是跨域的问题. 可我的程序Flash和xml数据是在同一个目录的啊? 绝不可能有跨域问题!!)
什么鬼问题! 而且只发生在IE6. 我唯一能想到的就是SSL证书的问题, 因为我们的测试环境下证书是无效的, 以为放到正式web环境(带有效证书)下应该就会没问题, 所以就直接把程序丢给客户了.
今天客户在他们的测试环境下测试时, 发现了这个问题, 我说这个问题应该是SSL证书引起的, 强烈建议他放到正式网站上测一下. 结果大出我意料, 居然还是不行! 马上到下班时间了, 可下周一(今天周五)这个栏目就要上线了. 加班(No money)!
我和Hwan忙开了, 这个问题实在让我们摸不着头脑, 网上也找不到相似的问题. 真有点后悔当初选择Flash来做这个效果, 但事已至此, 继续研究… 后来想到干脆把xml数据和flash一起从页面输出,xml以字符串形式作为页面中的js变量. flash通过ExternalInterface来调用这个变量, 事实证明该方法确实可行. 但由于直接从php输出的xml字符串包含换行,引号等特殊符号, 导致js解析有点问题, 害的Hwan也调试了好多遍, 最后以json格式输出,把整个xml字符串做为json对象的一个属性值,解决了编码问题. 搞定, 下班! 已经19:40多, 不知可怜的Hwan赶上回中山的车没有(他女朋友会不会怪他呢? 祝他好运,呵呵)
问题已解决,但IE6下出现这个问题的原因我还是不明白. 回家再写个case做了下测试, 在IE5.5,6.0,7… 发现都完全没有问题, 唉,到底什么问题?!
—————下面是補充內容—————
(»阅读全文…)
在做Flash加载图片的时候, 由于图片可能不存在或图片地址无效等情况, 如果不做处理, 这无疑会是一个糟糕的用户体验!
你想到的解决方法可能是在服务器端做转向, 图片不存在时转向到一个默认图片, 如:
ErrorDocument 404 http://xxx.com/no_photo.gif
思路没错, 不过你试一下可能就会吃闭门羹(我以前就吃过,呵呵), flash似乎根本不理会你的转向, 后来找到解决方法如下:
第一步, 做404转向到一个中转页面, 如ErrorDocument 404 /404.php;
(»阅读全文…)