告诉另一个域上的控制器有新数据
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 表单实现吗?以上是关于告诉另一个域上的控制器有新数据的主要内容,如果未能解决你的问题,请参考以下文章
CSRF 保护如何为我提供比 CORS 控制更高的安全性(前端/后端位于两个不同的域)?