我想通过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')}
});
但它不起作用。
我需要帮助
答案 0 :(得分:1)
您违反了浏览器中内置的same origin policy restriction。您无法发送跨域AJAX请求。如果您希望这一点工作,ASMX Web服务必须与托管此JavaScript代码的PHP页面位于同一个域中。在此示例中为http://www.w3schools.com/
。
如果您尝试使用的服务位于远程域上,您可以在域上编写PHP脚本,该脚本将使用远程服务(通过发送相应的HTTP请求),然后向此PHP脚本发送AJAX请求而不是直接尝试调用不可能的远程服务。新的PHP脚本将充当您的域与托管ASMX服务的远程域之间的桥梁。
当然,如果远程服务支持JSONP或CORS,您可以直接使用它。开箱即用的ASMX服务并非如此。请联系服务作者,看看他是否支持他们。