3

jQuery および AJAX を介して UPS API と通信したいと考えています。同様の ASP スクリプトで問題なく動作するため、XML は整形式のようです。しかし、ASP スクリプトをスキップして、jQuery 経由で UPS と直接通信することにしました。ただし、リクエストを送信すると、レスポンスは次のようになります。

方法: オプション
ステータス: 読み込みがキャンセルされました

xmlをUPSサーバーに送信するように指示するajaxリクエストで、ある種のオプションを見逃したと思います。

    $(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"));
                            }
            });
        });
4

1 に答える 1

0

クロス ドメイン呼び出しを行っているようです。
Cross Domain 呼び出しには jsonp を使用する必要があります。ajaxを参照

crossDomain (デフォルト: 同一ドメイン リクエストの場合は false、クロスドメイン リクエストの場合は true) タイプ: ブール値 同じドメインで crossDomain リクエスト (JSONP など) を強制する場合は、crossDomain の値を true に設定します。これにより、たとえば、別のドメインへのサーバー側のリダイレクトが可能になります。(バージョン追加:1.5)

于 2013-04-04T08:43:22.493 に答える