如何从JavaScript调用网络服务

时间:2020-03-06 14:34:31  来源:igfitidea点击:

假设我有一个Web服务http://www.example.com/webservice.pl?q=google,该服务会返回文本" google.com"。我需要使用参数(q = google)从JavaScript模块调用此网络服务(http://www.example.com/webservice.pl),然后使用返回值(" google.com")进行进一步操作加工。

最简单的方法是什么?我是JavaScript新手,因此非常感谢帮助。

解决方案

看看那里的许多JavaScript库之一。我个人会推荐jQuery。除了他们可以做的所有精美的UI事情外,它还有非常好的跨浏览器AJAX库。

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

编辑:

自从我回答这个问题以来已经有十年了,我们现在已经以CORS的形式支持跨域XHR。

对于任何现代应用程序,请考虑使用提取来提出请求。如果我们需要对旧版浏览器的支持,则可以添加一个polyfill。

原始答案:

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

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