Javascript 如何在ajax请求中发送xml标记作为参数? 在Ajax请求中将XML标记作为参数发送时遇到问题
起初我尝试将其作为字符串发送,但请求失败,因为ajax将标记编码为“&-lt;Id&-gt;16385&-lt;/Id&-gt;”, 因此,我使用jquery将其转换为xmlDoc,请求也会失败。 这是我的代码示例,您也可以在下面找到请求负载Javascript 如何在ajax请求中发送xml标记作为参数? 在Ajax请求中将XML标记作为参数发送时遇到问题,javascript,jquery,ajax,xml,Javascript,Jquery,Ajax,Xml,起初我尝试将其作为字符串发送,但请求失败,因为ajax将标记编码为“&-lt;Id&-gt;16385&-lt;/Id&-gt;”, 因此,我使用jquery将其转换为xmlDoc,请求也会失败。 这是我的代码示例,您也可以在下面找到请求负载 let id='<Id>16385</Id>'; xmlDoc = $.parseXML( id ); $xml = $( xmlDoc ); id = $xml.find( "Id" )[0]; let obj=
let id='<Id>16385</Id>';
xmlDoc = $.parseXML( id );
$xml = $( xmlDoc );
id = $xml.find( "Id" )[0];
let obj={
method: "ReadMOD_SYS_OC_entity_unit",
namespace:
"http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations",
param :{
"MOD_SYS_OC_entity_unit-id":id,
MOD_SYS_OC_entity_Name:"Test"
}
}
cordys.cordysAjax(obj.method,obj.namespace,obj.param).done(function(response) {
console.log(response);
});
function cordysAjax(method,namespace,par) {
return $.cordys.ajax({
method: method,
namespace:namespace,
parameters: par,
type: 'POST',
contentType: "xml"
});
}
**when sending the parameter as string**
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Body><ReadMOD_SYS_OC_entity_unit xmlns='http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations' ><MOD_SYS_OC_entity_unit-id>&'lt;Id>16385&'lt;/Id&'gt;</MOD_SYS_OC_entity_unit-id><MOD_SYS_OC_entity_Name>Test</MOD_SYS_OC_entity_Name></ReadMOD_SYS_OC_entity_unit></SOAP:Body></SOAP:Envelope>
**When sending the parameter as XML**
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Body><ReadMOD_SYS_OC_entity_unit xmlns='http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations' ><MOD_SYS_OC_entity_unit-id/><MOD_SYS_OC_entity_Name>Test</MOD_SYS_OC_entity_Name></ReadMOD_SYS_OC_entity_unit></SOAP:Body></SOAP:Envelope>
让id='16385';
xmlDoc=$.parseXML(id);
$xml=$(xmlDoc);
id=$xml.find(“id”)[0];
让obj={
方法:“ReadMOD\u SYS\u OC\u entity\u unit”,
名称空间:
"http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations",
参数:{
“MOD_SYS_OC_entity_unit-id”:id,
模块系统OC实体名称:“测试”
}
}
cordys.cordysAjax(obj.method,obj.namespace,obj.param).done(函数(响应){
控制台日志(响应);
});
函数cordysAjax(方法、命名空间、par){
返回$.cordys.ajax({
方法:方法,,
名称空间:名称空间,
参数:PAR,
键入:“POST”,
contentType:“xml”
});
}
**当以字符串形式发送参数时**
&“lt;Id16385</Id&'gt;试验
**当以XML形式发送参数时**
试验
XML提供了CDATA部分来包含可能包含保留字符的字符串
<![CDATA[<Id>16385</Id>]]>
16385]>
您的XML可能是
<?xml version="1.0"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<ReadMOD_SYS_OC_entity_unit xmlns="http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations">
<MOD_SYS_OC_entity_unit-id><![CDATA[<Id>16385</Id>]]></MOD_SYS_OC_entity_unit-id>
<MOD_SYS_OC_entity_Name>Test</MOD_SYS_OC_entity_Name>
</ReadMOD_SYS_OC_entity_unit>
</SOAP:Body>
</SOAP:Envelope>
16385]]>
试验
XML提供了CDATA部分来包含可能包含保留字符的字符串
<![CDATA[<Id>16385</Id>]]>
16385]>
您的XML可能是
<?xml version="1.0"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<ReadMOD_SYS_OC_entity_unit xmlns="http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations">
<MOD_SYS_OC_entity_unit-id><![CDATA[<Id>16385</Id>]]></MOD_SYS_OC_entity_unit-id>
<MOD_SYS_OC_entity_Name>Test</MOD_SYS_OC_entity_Name>
</ReadMOD_SYS_OC_entity_unit>
</SOAP:Body>
</SOAP:Envelope>
16385]]>
试验
答案是我不必将第一个参数的值作为xml标记发送,如“16385”
正确答案是
param :{
"MOD_SYS_OC_entity_unit-id":{Id:16385},
MOD_SYS_OC_entity_Name:"Test"
}
Ajax将按如下方式格式化请求负载
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Body>
<ReadMOD_SYS_OC_entity_unit xmlns='http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations' >
<MOD_SYS_OC_entity_unit-id>
<Id>16385</Id>
</MOD_SYS_OC_entity_unit-id>
</ReadMOD_SYS_OC_entity_unit>
</SOAP:Body>
16385
答案是我不必将第一个参数的值作为xml标记发送,如“16385” 正确答案是
param :{
"MOD_SYS_OC_entity_unit-id":{Id:16385},
MOD_SYS_OC_entity_Name:"Test"
}
Ajax将按如下方式格式化请求负载
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Body>
<ReadMOD_SYS_OC_entity_unit xmlns='http://schemas/comassetegOrganizationChart/MOD_SYS_OC_entity_unit/operations' >
<MOD_SYS_OC_entity_unit-id>
<Id>16385</Id>
</MOD_SYS_OC_entity_unit-id>
</ReadMOD_SYS_OC_entity_unit>
</SOAP:Body>
16385