Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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
Javascript 跨域问题XMLHttp_Javascript_Html_Xml - Fatal编程技术网

Javascript 跨域问题XMLHttp

Javascript 跨域问题XMLHttp,javascript,html,xml,Javascript,Html,Xml,我面临xmlhttp常见的跨域问题 我正在尝试使用SOAP协议访问WSDL web服务。我没有使用php,所以我不能使用 header('Access-Control-Allow-Origin: *'); 我也不能使用JSONP,因为我得到的响应不是JSON格式的,而是XML格式的。 有没有其他方法可以解决这个问题 这是我的代码片段 var user1="user_name"; var pass1="******"; var url="http://ideone.com/api/1/servi

我面临xmlhttp常见的跨域问题

我正在尝试使用SOAP协议访问WSDL web服务。我没有使用php,所以我不能使用

header('Access-Control-Allow-Origin: *');
我也不能使用JSONP,因为我得到的响应不是JSON格式的,而是XML格式的。 有没有其他方法可以解决这个问题

这是我的代码片段

var user1="user_name";
var pass1="******";
var url="http://ideone.com/api/1/service.wsdl";

var soap_msg="<?xml version='1.0' encoding='UTF-8' standalone='no'?>"+
"<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'"+          
"xmlns:tns='http://ideone.com:80/api/1/service'    xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'"+
"xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'"+
"xmlns:soap-enc='http://schemas.xmlsoap.org/soap/encoding/' "+
"xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' >"+
"<SOAP-ENV:Body><mns:getLanguages xmlns:mns='http://ideone.com:80/api/1/service' SOAP-  ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>"+
"<user xsi:type='xsd:string'>"+user1 +"</user><pass xsi:type='xsd:string'>"+pass1+"</pass>"+    
"</mns:getLanguages></SOAP-ENV:Body></SOAP-ENV:Envelope>";
var oXmlHttp=  new XMLHttpRequest();
oXmlHttp.open("POST",url,true);
oXmlHttp.setRequestHeader("Content-Type", "text/xml");
oXmlHttp.setRequestHeader("SOAPAction", "http://ideone.com/api/1/service#getLanguages");
oXmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*");
oXmlHttp.send(soap_msg);
var res=oXmlHttp.responseXML;
var user1=“user\u name”;
var pass1=“*******”;
变量url=”http://ideone.com/api/1/service.wsdl";
var soap_msg=“”+
""+
""+
“”+user1+“”+pass1+“”
"";
var oXmlHttp=new XMLHttpRequest();
open(“POST”,url,true);
setRequestHeader(“内容类型”、“文本/xml”);
setRequestHeader(“SOAPAction”http://ideone.com/api/1/service#getLanguages");
setRequestHeader(“访问控制允许来源”,“*”);
发送(soap\u msg);
var res=oXmlHttp.responseXML;

提前谢谢

这里有一个来自YUI的链接,您可能会发现它很有用


他们编写了一个回调,它本质上是一个允许返回XML的信封。

为了记录,应该在服务器端设置Allow Access标头,也就是在您不控制的ideone.com上。在这一点上,您所能做的就是按照以下路线操作。

您是否可以访问和控制服务器?如果是这样,那是什么呢?@michael Morton不。。。我没有访问服务器的权限。我想这是你唯一的选择。您可能不想使用YUI本身,但可以编写一个JSON包装器,将XML作为字符串返回(当然是适当的JSON编码),然后将其交给解析器。