2017-07-04 9 views
0

USPSアドレス検証APIがJavascriptのXMLHTTPプロトコルを使用して動作するようにしようとしています。私は正常にデータを送信していますが、USPSエンジンは何か好きではありません。私はxmlhttp.responseTextを通じて次の応答を得る:以下 USPS API with XMLHTTP returned error 80040B19

<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>

私は構文をテストするために使用しているコードです。 XMLをコピーする alert()が表示されます。これは、オンライン解析チェッカーで成功したものです。私は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。

+0

Nope。それはUSPSです。私は私の質問でソースページをリンクしました。私は第三者が関わったと思った理由を知りたいのですが、興味がありますか?たぶんそれは私が問題を見つけるのを助けるでしょう。 – JBH

+0

投稿したリンクを見てはいけません。 [これはもう一度](https://www.usps.com/business/web-tools-apis/welcome.htm)USPSで、shippingapis.comドメインを識別するサイトです。良い悲しみ、これとcURLの使用に関する十五の質問があります。あなたが私が見た最初の人は、真正性に疑問を抱いています。私が間違っていると確信しているなら、私に実際のAPIを示す実際のリンクを教えてください。あなたが正しいから、ドメインは重要です。 – JBH

答えて

0

メソッドとして「GET」を使用してみますか? USPS APIは非常に使いやすいです。投稿時にボディを正しく設定してください。