【问题标题】:Javascript cross domain POST/GETJavascript 跨域 POST/GET
【发布时间】:2011-07-26 05:12:25
【问题描述】:

我想从我的 javascript 调用网络服务。我在这里阅读了很多帖子,例如

Simplest SOAP example

但是 webservicex.net 的示例帖子返回 null(firebug 中的 xmlhttp.responseXML)。我感到困惑的是,所有这些库/代理/应用程序/等都在谈论与 Web 服务通信,但我没有看到 js,或者似乎一切都在后端完成。

我想调用一个 Web 服务并将所有内容返回给 js,似乎最合理的方式是使用代理服务器来发出请求,这样浏览器就不会抱怨。

我是网络服务器世界的新手,Apache mod_proxy 和/或代理服务器对我来说非常模糊,文档说他们做了什么但没有实现.. 有人可以提供一些链接让我朝着正确的方向前进有一些例子或教程吗?

谢谢

【问题讨论】:

    标签: javascript web-services apache http


    【解决方案1】:

    根据 API,可以将<script> 标记动态插入到您的文档中,例如:

    <script src="http://www.otherdomain.com/list.php?category=23&order=2"></script>
    

    然后脚本可以将结果以 JS 的形式发回,例如:

    yourCallback([{'Stool', 12000}, {'Table', 4000}]);
    

    当然,您编写的 yourCallback() 函数将使用结果填充 HTML 文档。

    当然,这取决于您使用的 API。 如果它是一个公共 API,它的接口被记录在案并且这些东西是隐藏的。如果它不是公共 API,您可能无法合法地从第三方站点访问他们的服务。

    【讨论】:

    • 稍后我将在位于其他地方的另一台机器上编写 Web 服务,我认为它正在推动技术,但我想直接与服务对话,而不是通过另一个脚本;我以为我读到了 mozilla 支持脚本签名以信任脚本,但这会限制平台......
    • 这不是以 PHP 为中心的。您可以将此模型与您的自定义服务一起使用。您的服务可以侦听端口、接受 HTTP 查询并生成 JSON 响应。它是跨域安全的。
    【解决方案2】:

    如果可能,您可能想尝试使用 JSONP 来执行跨域 AJAX 请求。可以在here 找到它与普通 JSON 请求的比较的快速细分。

    【讨论】:

      【解决方案3】:

      您可以编写简单的 PHP(或任何您喜欢的)脚本,该脚本接受 URL 和 POST/GET 参数,将它们提供给远程服务器并为您的 javascript 打印结果。

      因此,您可以调用非远程脚本来检索远程内容。

      【讨论】:

        【解决方案4】:

        jsonp只支持get,所以不能提交数据,最好的办法是在你同域实现跨域代理。 参考这里: http://www.codeproject.com/Articles/25218/Fast-Scalable-Streaming-AJAX-Proxy-continuously-de

        【讨论】:

          猜你喜欢
          • 2013-03-02
          • 2015-01-25
          • 2018-08-28
          • 2012-05-18
          • 1970-01-01
          • 2012-01-04
          • 1970-01-01
          • 2019-03-29
          • 1970-01-01
          相关资源
          最近更新 更多