我想在php中使用c#web service(* .asmx)和jquery

时间:2012-12-08 16:30:08

标签: php jquery service web asmx

我想通过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')}
    });

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

1 个答案:

答案 0 :(得分:1)

您违反了浏览器中内置的same origin policy restriction。您无法发送跨域AJAX请求。如果您希望这一点工作,ASMX Web服务必须与托管此JavaScript代码的PHP页面位于同一个域中。在此示例中为http://www.w3schools.com/

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

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