Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ajax中调用RESTfulWeb服务?_Ajax_Html_Web Services_Restful Authentication - Fatal编程技术网

如何在ajax中调用RESTfulWeb服务?

如何在ajax中调用RESTfulWeb服务?,ajax,html,web-services,restful-authentication,Ajax,Html,Web Services,Restful Authentication,我试图通过使用Ajax使用RESTfulWeb服务进行货币转换。在这里,我无法解析或读取RESTfulWebService生成的xml文件中的数据,请查看我的代码并帮助我解决问题 代码: <html> <head> <script> var xmlHttp function showCust() { // alert("function Called");

我试图通过使用Ajax使用RESTfulWeb服务进行货币转换。在这里,我无法解析或读取RESTfulWebService生成的xml文件中的数据,请查看我的代码并帮助我解决问题

代码:

<html> 
<head> 
    <script>
        var xmlHttp
        function showCust()
        {
            // alert("function Called");

            xmlHttp = new XMLHttpRequest();
            //  alert("function Called");
            //var fromCurr = document.getElementById("name");
            var fromCurr = f1.elements[0].value;
            var toCurr = f1.elements[1].value;
            // alert("function Called");
            //alert(fromCurr + " " +toCurr);
            var url = "http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=" + fromCurr + "&ToCurrency=" + toCurr;
            alert(url);
            xmlHttp.open("GET", url, true);//it will call 'CustomerDetails' servlet 
            // alert("function Called");
            xmlHttp.onreadystatechange = stateChanged;//this is userdefined method which will fired based readyState property 
            xmlHttp.send();
        }

        function stateChanged()
        {
            // alert("function Called");

            //check whether the response is completely loaded or not? 
            if (xmlHttp.readyState == 4)
            {

                var str1 = xmlHttp.responseText;
                alert(str1);
                //var myObject = eval('(' + str1 + ')');
                //var text = '{"name":"Sivarmayya","email":"smadhupada@miraclesoft.com","phone":"9000387222"}'
                var users = xml.getElementsByTagName("double");
                alert(users);
                var user = users[0];



                //var obj = JSON.parse(str1);
                //document.f1.mail.value=obj.mail; 
            }
        }
    </script> 
</head> 
<body>

    <form name="f1" > 
        From Currency:&nbsp; <input type="text" title="enter from currency"  id="name"/><br> 
        To Currency:&nbsp; <input type="text" title="enter to currency"  id="name1"/></br>
        <input type="submit" value="Go" onclick="return showCust()">
        Result:&nbsp;&nbsp;<input type="text" name="mail" /><br> 
    </form> 
</body> 

var xmlHttp
函数showCust()
{
//警报(“调用的函数”);
xmlHttp=新的XMLHttpRequest();
//警报(“调用的函数”);
//var fromCurr=document.getElementById(“名称”);
var fromCurr=f1。元素[0]。值;
var toCurr=f1。元素[1]。值;
//警报(“调用的函数”);
//警报(从当前+“”+到当前);
变量url=”http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=“+fromCurr+”&ToCurrency=“+toCurr;
警报(url);
open(“GET”,url,true);//它将调用“CustomerDetails”servlet
//警报(“调用的函数”);
xmlHttp.onreadystatechange=stateChanged;//这是将基于readyState属性激发的用户定义方法
xmlHttp.send();
}
函数stateChanged()
{
//警报(“调用的函数”);
//检查响应是否已完全加载?
if(xmlHttp.readyState==4)
{
var str1=xmlHttp.responseText;
警报(str1);
//var myObject=eval(“(“+str1+”)”);
//var text='{“name”:“Sivarmayya”,“email”:smadhupada@miraclesoft.com“,“电话”:“9000387222”}”
var users=xml.getElementsByTagName(“双”);
警报(用户);
var user=users[0];
//var obj=JSON.parse(str1);
//document.f1.mail.value=obj.mail;
}
}
来自货币:
兑换货币:
结果:

虽然您没有提供所遇到的错误类型,但我认为您的问题在于浏览器阻止了CORS请求:

我没有收到任何错误。问题是我无法从使用指定url生成的xml文件中获取数据..如何使用Ajax启用浏览器的CORS做你的功课,谷歌it!关键词
启用cors
在第一页给出了大量相关结果。无论如何,你可以从我得到一个在Internet Explorer浏览器中启用cors的解决方案开始,方法如下:即,你可以通过工具| Internet选项|安全选项卡在IE中添加一个受信任的站点。然后,您可以通过自定义级别的“杂项”部分设置受信任站点的安全性。您将看到,默认情况下,“跨域访问数据源”选项设置为Prompt。但是,提示符并不令人满意,因为它会中断任何正在使用消息框运行的当前应用程序,要求用户确认他们想要访问该服务。相反,将选项设置为启用。但我没有找到在其他浏览器中启用CORS的解决方案。。。。。。。。。。。。。。。