0

我无法访问 web 服务的响应,请帮助我错误来了我已经通过解析警告它,但它显示错误 null。我正在使用在线网络服务

     var webMethod = "http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit";
     var soap ='<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>     <CelsiusToFahrenheit xmlns="http://tempuri.org/"> <Celsius>12</Celsius> </CelsiusToFahrenheit>   </soap:Body> </soap:Envelope>';
    $j.ajax({
          type: "POST",
          url :webMethod,
          data: soap,
           dataType :"xml",
          contentType:"text/xml; charset=\"utf-8\"",
          cache:false,
          async: false,
        error:function(resp)
        {
            alert("Error :"+$j.parseXML(resp));
        },

    }).done(function(response){

            console.log(response);
            var xmlData =$j(response).find('FahrenheitToCelsiusResult').text();
            alert(xmlData);
        }); 

});
4

1 回答 1

1

这可能是一个跨域访问问题。浏览器通常不允许您通过 AJAX 获取远程数据。使用 JSONP 接口是解决此问题的常见解决方法。

或者,如果您可以控制远程服务器(在您的示例中这不太可能),那么您可以添加一个标头:

Access-Control-Allow-Origin: *

参见:维基百科

我应该补充一点,另一个解决方案是在同一个域上制作您自己的本地脚本(例如 PHP),您的 Javascript 可以在本地与之通信。该脚本将处理实际的 SOAP 通信(因此不必担心跨源策略)并简单地返回结果。

于 2013-06-03T04:58:27.533 回答