【发布时间】:2011-01-10 00:21:39
【问题描述】:
我发现一些帖子可以为其他人解决此问题,但不适用于我的情况。我想为我的跨服务器 ajax 调用获得最佳解决方案。
情况是这样的。我有两个网址,www.mysite.com 和 members.mysite.com。第一个站点是 wordpress 驱动的,第二个站点是 codeigniter 驱动的,我将这些站点称为 wordpress 端和 codeigniter 端。 codeiginter 端有一个作为模块创建的事件日历页面,因此所有页面所要做的就是包含该文件以及所有 javascript 和内容。在 wordpress 方面,我们必须将其中一个文件包含到页面中,但问题是 codeigniter 方面是 ajax 驱动的,所以当它进行 ajax 调用时,调用将是跨服务器的。以下是我在网上看到的针对我的情况的缺点的解决方案:
- jsonp - 这不支持 POST 数据。
- 简单的服务器端代理http://devlog.info/2010/03/10/cross-domain-ajax/ - 由于javascript 在两个url 之间共享,我必须在wordpress 端和codeigniter 端创建相同的文件。这意味着重复代码、性能问题以及如果用户在 codeigniter 端,请求必须进行额外的页面调用才能获取数据。
- 符号链接 - 由于这两个都驻留在同一服务器上,是否可以在 wordpress 端建立符号链接?我的 codeigniter 设置会被加载吗?我觉得这行不通。
- iFrame - 这是一个包含在内的模块,因此它缺少所有样式和标题等
- .htaccess 文件 - 这是一个长镜头,但如果有某种方法可以让 .htaccess 文件在不知道 ajax 的情况下将调用重定向到其他服务器,它可能会起作用吗?
在这一点上,我倾向于 #2,因为这是唯一可行的解决方案。你们还有其他的解决方案吗?如果有某种方法可以将数据与 jsonp 一起传递,那将是理想的,但所有网站都表示无法传递发布数据,并且 codeigniter 不喜欢查询字符串……实际上,我可以启用它,但那会可能现在把所有事情都搞砸了。
更新
所以我遵循了第一个海报的想法,并且成功了。我在 jQuery $.ajax(), $.post sending "OPTIONS" as REQUEST_METHOD in Firefox 现在让我担心的是他们说存在一些跨浏览器问题。有什么想法吗?
【问题讨论】:
标签: php ajax codeigniter