【问题标题】:How do I alert XML file in jQuery如何在 jQuery 中提醒 XML 文件
【发布时间】:2018-09-24 04:41:36
【问题描述】:

这是一个登录 api,我试图在其中发送一个 xml 文档,但它显示错误。删除 <? 这个后,它没有显示错误,但我需要发送它。谁能帮我用任何其他类型或方法发送整个 xml?

<script>
    $(document).ready(function(){

        var xmldata='<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><login xmlns="urn:partner.soap.sforce.com"><username>ddd@c.in</username><password>Year#2018@2018</password></login></soapenv:Body></soapenv:Envelope>';
        alert(xmldata);
        $.ajax({
            url: 'url',
            type: 'POST',
            headers: {
               'Content-Type': "text/xml",
               'SOAPAction': "",
            } ,
            dataType: 'xml',
            contentType: "text/xml",
            data: {xml:xmldata},
            success: function (data, textStatus, xhr) {
                console.log(data);
            },
            error: function (data, errorThrown) {
               console.log(data);
            }
        });
    });
</script>

此外,我在此代码中遇到跨域错误。如何发送 SOAP 数据?

【问题讨论】:

  • 请发布您的错误。附:您在 ajax 函数中在哪里定义 url?
  • 收到跨域错误意味着您不能执行此操作,因为接收端会阻止您。您尝试调用的后端服务是您的吗?

标签: javascript jquery ajax api soap


【解决方案1】:

用途:

$(document).ready(function(){
var xmldata='<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><login xmlns="urn:partner.soap.sforce.com"><username>ddd@c.in</username><password>Year#2018@2018</password></login></soapenv:Body></soapenv:Envelope>';
alert(xmldata);
$.ajax({
    url: 'url',
    type: 'POST',
    headers: {          
       'Content-Type': "text/xml",
       'SOAPAction': "",
    } ,
    dataType: 'xml',
    contentType: "text/xml",
    data: {xml:xmldata},
    success: function (data, textStatus, xhr) {
        console.log(data);
    },
    error: function (data, errorThrown) {
       console.log(data);
    }            
});
});
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;

在脚本运行之前添加 jQuery 库(您可以 google 或查看 sn-p)。

我认为您关于未获取整个 XML 内容的问题将得到解决。

【讨论】:

  • 他遇到了跨域错误。不是“$ 未定义”。
【解决方案2】:

试试下面的。

在 Internet Explorer 中:

xmlObject.xml

其他浏览器:

(new XMLSerializer()).serializeToString(xmlObject)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多