2011-10-12 2 views
0

xmlhttp에 공통적 인 교차 도메인 문제가 있습니다.도메인 간 문제 XMLHttp

SOAP 프로토콜을 사용하여 WSDL 웹 서비스에 액세스하려고합니다. 나는 PHP를 사용하고 있지 않다 그래서 나는 또한 내가하지 JSON 형식으로하지만, XML 형식으로 얻을 응답으로 JSONP를 사용할 수 없습니다

header('Access-Control-Allow-Origin: *'); 

을 사용할 수 없습니다. 이 문제를 해결할 수있는 다른 방법이 있습니까?

다음은 제 코드입니다.

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; 

미리 감사드립니다.

+0

서버에 액세스하고 서버를 제어 할 수 있습니까? 그렇다면 OS는 무엇입니까? –

+0

@michael Morton No ... 서버에 액세스 할 수 없습니다. – santhosh

답변

1

다음 링크는 YUI의 유용한 링크입니다.

http://developer.yahoo.com/yql/guide/yql-jsonp-x.html

그들은 기본적으로 XML을 반환 할 수 있습니다 봉투입니다 콜백을 작성했습니다.

+0

실제로 도움이되지 않았습니다. – santhosh

+0

이와 같은 것이 정말 유일한 선택입니다. YUI 자체를 사용하고 싶지는 않을 수도 있지만 XML을 문자열 (적절하게 JSON으로 인코딩 됨)로 반환하는 JSON 래퍼를 작성한 다음 파서에 전달할 수 있습니다. –

0

레코드 용으로 허용 액세스 헤더는 서버 측에서 설정해야합니다. 즉, 제어하지 않는 ideone.com에서 허용 액세스 헤더를 설정해야합니다. 이 시점에서 할 수있는 것은 easyXDM의 줄을 따라 할 수 있습니다.