告诉另一个域上的控制器有新数据

Posted

技术标签:

【中文标题】告诉另一个域上的控制器有新数据【英文标题】:Tell Controller On Another Domain There Is New Data 【发布时间】:2012-01-08 09:20:51 【问题描述】:

目前我有两个网站托管在不同的域中。

站点 1:我只想用作内容创建的 CMS。 (写作、编辑等)

SITE 2:我想用于查看内容。

理论上,我希望能够在 SITE 1 中创建多个内容。

当我准备好发布这些内容时,我会按下“发布”按钮,这会提醒 SITE 2 有新内容并通过 JSONP 传递值。

SITE 2 然后将通过 JSON 提取数据并做它想做的事......(进入数据库等)

...所以是的,我被困在理论部分。我不确定现在该去哪里,但这就是我的想法。

SITE 1 上有一个 javascript 函数,当我选择发布时会调用它:

 $.ajax(
    type: "POST",
    dataType: "jsonp",
    data: postData,
    url: 'http://site2.com/admin_json_controller.php',
    success: function(data) 
        // 'data' is a JSON object which we can access directly.
        // Evaluate the data.success member and do something appropriate...
        if (data.success == true)
            alert('worked!');
        
        else
            alert('did not work!');
        
    
);

这会将 json 对象发布到 SITE 2 上的 php 文件中。这个文件只是在等待这个 post 对象。当它识别出 post 对象时……它会将值输入到数据库中。

这有意义吗?我感觉我还不太了解 JSON,但非常感谢任何帮助、问题、提示和指针。

谢谢

【问题讨论】:

为什么要使用ajax?一个普通的旧 html 表单听起来很合适。 我目前正在开发一个原型来做类似的事情,但我打算通过对 web 服务的重复 ajax 调用来检查数据库中的更新值。我认为出于您的目的,您只需在单击“发布”按钮时将数据提交到数据库,但我很想知道社区中是否有人对实现您的概念有任何意见。 如果您想联合内容,您可以从第一个发布 RSS 提要并在第二个中使用该提要,在构建提要时使用查询来查找所有“活跃”的内容。否则,您可以使用 SOAP 或 XML-RPC 设置将数据推送到第二个服务器并保存到您的数据库中。 【参考方案1】:

为了简化事情,您有两个选择:

    对两个域使用相同的数据库。

    向其他域发送一个简单的帖子。将表单的操作设置为在另一个域上编写脚本。其他域可以通过$_POST访问变量。

【讨论】:

如果网站尚未建立,选项 1 可以通过 ExpressionEngine's Multi-Site Manager 轻松完成。 喜欢您的第二个选项,但我真的很想将数据作为 JSON 传递。这可以通过简单的 html 表单实现吗?

以上是关于告诉另一个域上的控制器有新数据的主要内容,如果未能解决你的问题,请参考以下文章

IIS 7.5 - 为另一个域上的文件共享设置虚拟目录

CSRF 保护如何为我提供比 CORS 控制更高的安全性(前端/后端位于两个不同的域)?

托管在不同域上的 JavaScript 可以读取/修改另一个域的 DOM 吗?

自动将一个域上的所有电子邮件地址转发到另一个域

多个文本区域上的 flex 编辑菜单操作

ASP 中的访问控制允许来源