USPS API,XMLHTTP 返回错误 80040B19

USPS API with XMLHTTP returning error 80040B19

我正在尝试使用 Javascript 的 XMLHTTP 协议来验证 USPS 地址 API。我已成功发送数据,但 USPS 引擎不喜欢某些东西。我通过 xmlhttp.responseText 得到以下响应:

<Error><Number>80040B19</Number><Description>XML Syntax Error: Please check the XML request to see if it can be parsed.</Description><Source>USPSCOM::DoAuth</Source></Error>

下面是我用来测试构造的代码。你可以看到一个 alert() 复制了 XML,我已经 运行 通过在线解析检查器成功地复制了它。我已经查看了很多与 cURL 等相关的 SO 问题,但没有找到与 XMLHTTP 相关的问题。但是,老实说,我不确定 XMLHTTP 是否是问题所在。它正在发送和接收。我构建 XML 请求的方式有问题吗?我正在密切模拟 API 示例。谢谢!

<html><script language="javascript">
var xmlhttp;
var formData = new FormData();
formData.append('API', 'Verify');
$xml = '<AddressValidateRequest USERID="XXXX">\
<Address>\
<Address1></Address1>\
<Address2>450 Bauchet St.</Address2>\
<City>Los Angeles</City>\
<State>CA</State>\
<Zip5></Zip5>\
<Zip4></Zip4>\
</Address>\
</AddressValidateRequest>';

formData.append('XML', $xml);
alert( $xml+"\n\n");
if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
} else {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
    console.log(xmlhttp.readyState);
    console.log(xmlhttp.status);
    if(xmlhttp.readyState==4 && xmlhttp.status==200){
        alert(xmlhttp.responseText);
        if(xmlhttp.responseText == 'false'){ alert(xmlhttp.responseText); }
    }
}
xmlhttp.onerror = function () { console.error(xmlhttp.statusText); }
xmlhttp.open("POST", 'http://production.shippingapis.com/ShippingAPI.dll');
xmlhttp.send(formData);
</script> </html>

服务的界面和注册来自here。 USPS.com.

尝试使用 "GET" 作为方法? USPS API 非常易于使用。发布时确保正文设置正确