Ajax跨域post解决方案
最近在做一个Forum的API给其他产品调用,允许其他产品(和Forum不同域)显示Forum指定主题的post并可回复。
客户要求用Ajax来做,这就涉及到Ajax跨域的问题。
产品中已经在用jquery,我们理所当然地用$.getJSON()来实现了。
但测试发现一个问题:
当回复字数过多时,会返回414错误(Request-URI Too Large),因为get方式提交的数据是非常有限的(好像只有1k或几k?)
有没有可能用post来跨域提交?
研究了一下jquery的ajax跨域机制,其实它是通过动态添加script标签来实现的,没找到对应的post解决方案。
估计只有在服务端添加一层Proxy来处理了?
但这明显会给服务器带来很大压力,灵机一动,想到了一个另类的办法:
通过Flash来提交,可以在Forum所在服务器放置策略文件(crossdomain.xml)授权指定域。
这样既可解决POST跨域问题,又可减轻服务器负担。