【问题标题】:Send a XML request using jQuery使用 jQuery 发送 XML 请求
【发布时间】:2013-03-26 05:36:46
【问题描述】:

我想通过 jQuery 和 AJAX 与 UPS API 进行通信。 XML 似乎格式正确,因为它在类似的 ASP 脚本中运行良好。但我想我会跳过 ASP 脚本并通过 jQuery 直接与 UPS 通信。但是,当我发送请求时,响应显示为:

方法:选项
状态:加载已取消

我假设我错过了 ajax 请求中的某种选项,告诉它将 xml 发送到 UPS 服务器。

    $(document).ready(function() {
            $.ajax({ type: "POST",
                            url: "https://wwwcie.ups.com/ups.app/xml/XAV",
                            data: "<?xml version=1.0?>" + 
                                "   <AccessRequest xml:lang='en-US'>" +
                                "       <AccessLicenseNumber>LICENSENUMBER</AccessLicenseNumber>" +
                                "       <UserId>USER</UserId>" +
                                "       <Password>PASS</Password>" +
                                "   </AccessRequest>" +
                                "   <?xml version=1.0?>" +
                                "   <AddressValidationRequest xml:lang='en-US'>" +
                                "       <Request>" +
                                "           <TransactionReference>" +
                                "               <CustomerContext>AddressValidationRequest</CustomerContext>" +
                                "               <XpciVersion>1.0</XpciVersion>" +
                                "           </TransactionReference>" +
                                "           <RequestAction>XAV</RequestAction>" +
                                "           <RequestOption>3</RequestOption>" +
                                "       </Request>" +
                                "       <AddressKeyFormat>" +
                                "           <AddressLine>1234 N. Main Street</AddressLine>" +
                                "           <PoliticalDivision2>Los Angeles</PoliticalDivision2>" +
                                "           <PoliticalDivision1>CA</PoliticalDivision1>" +
                                "           <PostcodePrimaryLow>90210</PostcodePrimaryLow>" +
                                "           <CountryCode>US</CountryCode>" +
                                "       </AddressKeyFormat>" +
                                "   </AddressValidationRequest>", 
                            contentType: "text/xml",
                            dataType: "xml",
                            cache: false,
                            error: function() { alert("No data found."); },
                            success: function(xml) {
                                alert("it works");
                                alert($(xml).find("project")[0].attr("id"));
                            }
            });
        });

【问题讨论】:

  • 您的浏览器将其视为 CORS 请求。尝试添加 crossDomain: true,

标签: xml jquery asp-classic xmlhttprequest


【解决方案1】:

您似乎正在进行跨域调用。
您需要使用 jsonp 进行跨域调用。参考ajax

crossDomain(默认:同域请求为false,同域请求为true 跨域请求)类型:布尔如果你想强制 同域跨域请求(如JSONP),设置值 跨域为真。例如,这允许服务器端 重定向到另一个域。 (添加的版本:1.5)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2019-05-13
    • 2020-02-12
    相关资源
    最近更新 更多