如何在JavaScript中调用Web服务

11
2个回答

14

编辑:

自我回答这个问题已经过去了十年,现在我们有CORS的跨域XHR支持。

对于任何现代应用程序,请考虑使用fetch来发出请求。如果需要支持旧版浏览器,可以添加polyfill

原始回答:

请记住,您不能跨域进行请求。例如,如果您的页面位于yourexample.com上,而Web服务位于myexample.com上,则不能直接向其发出请求。

如果确实需要进行此类请求,则需要在您的服务器上设置代理。您将向该代理页面发出请求,它将从Web服务检索数据并将其返回到您的页面。


我想从其他网站获取数据,而不使用代理,有解决此问题的方案吗? - Ayoub Benayache
1
@AyoubBenayache,是的,您必须实现CORS头(这在十年前回答此问题时还不可用)。如果您只搜索CORS,就会有大量关于此的好信息。 - Prestaul

12

看看市面上众多的JavaScript库之一。我个人推荐jQuery。除了所有精美的UI效果外,它还有非常好的跨浏览器AJAX库

$.get(
    "http://xyz.com/webservice.pl",
    { q : "google" },
    function(data) {
        alert(data);  // "google.com"
    }
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接