Javascript跨域POST / GET

时间:2011-03-30 15:53:09

标签: javascript web-services apache http

我想从我的javascript调用Web服务。我在这里读了很多帖子,比如

Simplest SOAP example

但是webservicex.net的示例帖子返回null(firebug中的xmlhttp.responseXML)。我感到困惑的是,所有这些libs / proxies / apps /等谈论与Web服务进行通信,但我没有看到js,或者看起来一切都在后端完成。

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

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

由于

4 个答案:

答案 0 :(得分: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。 如果它是apublic API,它的界面会被记录下来并隐藏这些东西。如果它不是公共API,您可能无法合法地从第三方站点访问其服务。

答案 1 :(得分:1)

如果可能的话,您可能想尝试使用JSONP来执行跨域AJAX请求。可以在here找到与常规JSON请求相比较的快速细分方法。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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