我想通过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')}
});
但它不起作用。
我需要帮助
您违反了浏览器中内置的同源策略限制。不能发送跨域 AJAX 请求。如果您希望此功能正常工作,则ASMX Web服务必须与托管此javascript代码的PHP页面位于同一域中。在此示例中,这将http://www.w3schools.com/
.
如果您尝试使用的服务位于远程域上,则可以在域上编写一个 PHP 脚本,该脚本将使用远程服务(通过发送适当的 HTTP 请求),然后将 AJAX 请求发送到此 PHP 脚本,而不是直接尝试调用远程服务,这是不可能的。新的 PHP 脚本将简单地充当您的域与托管 ASMX 服务的远程域之间的桥梁。
当然,如果远程服务支持 JSONP 或 CORS,您可以直接使用它。开箱即用的 ASMX 服务并非如此。联系服务的作者,看看他是否支持他们。