Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 如何在ajax请求中发送xml标记作为参数? 在Ajax请求中将XML标记作为参数发送时遇到问题_Javascript_Jquery_Ajax_Xml - Fatal编程技术网

Javascript 如何在ajax请求中发送xml标记作为参数? 在Ajax请求中将XML标记作为参数发送时遇到问题

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=

起初我尝试将其作为字符串发送,但请求失败,因为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={
    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&gt;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