【问题标题】:sending data to another website and receive result将数据发送到另一个网站并接收结果
【发布时间】:2011-09-01 17:34:47
【问题描述】:

如果我有website1.comwebsite2.com,我可以将数据(例如:来自输入的值)从website2.com 发送到website1.com 并接收结果吗?没有页面刷新或重定向。我只想使用javascriptajax,不使用PHPjQuery。如果可能的话,给我一个例子。

我想过在website2.com 上创建一个script 元素(使用javascript),带有src,例如:website1.com?data=<value from input>,当script 元素加载src 时,它会显示一个结果,但也许有一个更好的选择。

PS:我将有更多分离的数据要发送。

注意:这不是XSS,只是网站的公共项目,需要每隔x分钟更新一次数据,并发送一些数据到website1

谢谢。

【问题讨论】:

  • 您想用来自 website1 的 javascript 执行来自 website2 的 javascript?
  • 没有。 website2上的javascript是从website1加载的,当用户要发送一些数据时,需要将数据发送到website1,然后website2需要接收结果(例如:您的数据成功提交,或类似的东西)

标签: javascript html ajax xmlhttprequest


【解决方案1】:

你的问题并不完全清楚,但一般来说当你必须做跨站AJAX时你必须使用JSONP

【讨论】:

    【解决方案2】:

    由于 XmlHttpRequest 不能跨域工作,你必须使用JSONP。基本上,这是按照您的建议动态添加脚本标签。然后,服务器使用你的 GET 数据,做它想做的任何事情,并且通常“打印”一个回调函数。

    当您使用脚本标签调用文件时,它将评估显示的所有内容。这就是为什么,如果,在服务器端,你正在做:

    <?php
    echo 'alert(1);';
    ?>
    

    这将被评估为 javascript。然后,您可以轻松了解如何使用回调函数(另一个 GET 参数)。

    另外,在 jQuery 中,当您调用 $.ajax 时,有一个名为 'jsonp' 的选项(使用“回调”作为默认 GET 参数,但可以更改)。

    【讨论】:

      【解决方案3】:

      您可能会遇到一些 XSS 问题,但您可以使用 ajaxgold。发送几乎所有内容是一种非常简单的方式。

      调用发送到网站2

      postDataReturnText( 'http://website2.com', 'data=bla', getResult );
      

      返回结果

      function getResult( text ) {}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-10
        • 1970-01-01
        • 2021-02-24
        • 2019-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-21
        相关资源
        最近更新 更多