Javascript SOAP原型Ajax SOAPAction标题问题
所以我尝试发出请求并传入SOAP对象,问题是它返回的很好(onSuccess),但是responseXML不存在。我使用Fiddler和HTTP客户端(Fiddler的OSX版本)输入相同的请求boom,并返回正确的响应。有了原型,就没那么多了 我尝试在标题和参数字段中Javascript SOAP原型Ajax SOAPAction标题问题,javascript,ajax,soap,prototypejs,Javascript,Ajax,Soap,Prototypejs,所以我尝试发出请求并传入SOAP对象,问题是它返回的很好(onSuccess),但是responseXML不存在。我使用Fiddler和HTTP客户端(Fiddler的OSX版本)输入相同的请求boom,并返回正确的响应。有了原型,就没那么多了 我尝试在标题和参数字段中 <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function test(){
var body = '<?xml version="1.0" encoding="utf-8"?>' +
'<soap:Envelope' +
' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
' xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"' +
' xmlns:tns="urn:uvindexalert" xmlns:types="urn:uvindexalert/encodedTypes"' +
' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
' xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
' <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
' <tns:getUVIndexAlertByZipCode>' +
' <in0 xsi:type="xsd:string">92109</in0>' +
' </tns:getUVIndexAlertByZipCode>' +
' </soap:Body>' +
'</soap:Envelope>';
var headers = ["SOAPAction", " ", "Content-Type", "text/xml"];
var request = new Ajax.Request("http://iaspub.epa.gov/uvindexalert/services/UVIndexAlertPort?wsdl", {
contentType: "application/xml",
requestHeaders: headers,
parameters: "SOAPAction: ",
postBody: body,
onSuccess: function(response){
var j = 0;
},
onFailure: function(){
var i = 0;
}
});
}
test();
</script>
功能测试(){
变量体=“”+
'' +
' ' +
' ' +
' 92109' +
' ' +
' ' +
'';
var headers=[“SOAPAction”,“Content-Type”,“text/xml”];
var request=new Ajax.request(“http://iaspub.epa.gov/uvindexalert/services/UVIndexAlertPort?wsdl", {
contentType:“应用程序/xml”,
requestHeaders:headers,
参数:“SOAPAction:”,
postBody:body,
onSuccess:函数(响应){
var j=0;
},
onFailure:function(){
var i=0;
}
});
}
test();
var i&j只是为了让我知道它在哪里断裂,以便我可以检查它。我也在网上看了看,发现有人说用try代替text/xml application/xml,然后添加charset=utf-8,所以我做了所有这些,但还是什么也没做。有人知道如何使用SOAPAction返回XML吗?使用Ajax不能进行跨域请求。这是安全限制
为了实现安全的跨域请求,目前正在进行一些不同的工作,但并非所有浏览器都支持这些工作,它们需要您尝试向其发出请求的站点的合作。许多人转而使用HTTP代理脚本—服务器上的一个脚本,用于接收Ajax请求、联系远程URL并传递响应。您不能使用Ajax进行跨域请求。这是安全限制
为了实现安全的跨域请求,目前正在进行一些不同的工作,但并非所有浏览器都支持这些工作,它们需要您尝试向其发出请求的站点的合作。许多人转而使用HTTP代理脚本—服务器上的一个脚本,用于接收Ajax请求、联系远程URL并传递响应。除了跨站点脚本安全问题之外,我以前编写过Prototype.js SOAP客户端,在“内容类型”和“SOAPAction”标题方面有很多问题。我最终使用了下面的方法,它起了作用(但只适用于同一域中的请求) Web服务器应为
选项
请求发送此标头:
Access-Control-Allow-Origin: *
撇开跨站点脚本安全问题不谈,我以前编写过Prototype.js SOAP客户端,在“Content Type”和“SOAPAction”标题方面有很多问题。我最终使用了下面的方法,它起了作用(但只适用于同一域中的请求) Web服务器应为
选项
请求发送此标头:
Access-Control-Allow-Origin: *