0

我想通过 jQuery 在 php 中使用 c# web 服务 (*.asmx)。
我的网络服务是:
http
://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit ,我的 php 代码是:

    $.ajax({
      type: "POST",
      url: "http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit",
      dataType: 'text/xml; charset=utf-8',
      success: function(data) {alert('ok')},
      error  : function(e) {alert('error')}
    });

但它不起作用。
我需要帮助

4

1 回答 1

1

您违反了浏览器内置的相同来源策略限制。您不能发送跨域 AJAX 请求。如果您希望它工作,ASMX Web 服务必须位于与托管此 javascript 代码的 PHP 页面相同的域中。在这个例子中,这将是http://www.w3schools.com/.

如果您尝试使用的服务位于远程域上,您可以在您的域上编写一个 PHP 脚本,该脚本将使用远程服务(通过发送适当的 HTTP 请求),然后向该 PHP 脚本发送 AJAX 请求,而不是直接发送试图调用不可能的远程服务。新的 PHP 脚本将充当您的域和托管 ASMX 服务的远程域之间的桥梁。

当然,如果远程服务支持JSONPCORS,您可以直接使用它。开箱即用的 ASMX 服务并非如此。联系服务的作者,看看他是否支持他们。

于 2012-12-08T16:32:36.463 回答