2016-08-15 8 views
0

私はASPにはあまりよく慣れていませんが、私が管理しているサイトはそのエラーを私に吐き出しています。範囲外Checkout CartでMicrosoft VBScriptランタイムエラー '800a0009'を取得する

MicrosoftのVBScriptランタイムエラー '800a0009' 添字:: '[数:1]' /shopping_sub.asp、ライン715

ここでは、サイトからの完全なコードですここでは697から728のコードは次のとおりです。

'Response.write strPass & "<p>"  
    'Response.write "Response: " & strResp 
    'Response.end 

    If strResp="ERROR" then 
     RESULT_num_shipping_options = -1 
     Session("ShipErrMsg")="To continue your order, please contact customer service regarding your contact information. Thank you." 
    Else  
     RESULT_num_shipping_options=1 

     vResp=Split(strResp,":") 

     Dim RESULT_shipping_description_array(4) 
     Dim RESULT_shipping_amount_array(4) 

     For I = 0 to UBound(vResp) 
       vResp2=Split(vResp(I),"|") 
       RESULT_shipping_description_array(I)=vResp2(0) 
       RESULT_shipping_amount_array(I)=vResp2(1) 

     Next    
    End If  

Else 
    RESULT_num_shipping_options = -1 
    cShipping=0 
End If 
End If 

'Response.write "Weight: " & siWeight & "<br/>" 
'Response.write "Zip: " & receiverpostalcode & "<br/>" 
'Response.write "Country: " & receivercountrycode & "<br/>" 

7つのアイテムがカートに追加された後に機能し始めるように見えますが、それよりも小さいものはエラーを返します。

これはすべての製品で起こるわけではありません。

答えて

1

vRespの値とvResp2の配列長を決定するためにデバッガーを使用しましたか?

私の推測では、レスポンスは期待どおりではありません。 APIに常に正しい応答があるように強制できない場合は、値にアクセスしようとする前にスプリットレスポンスの長さをチェックすることで、APIから保護する必要があります。

UBound(vResp)_> 4の場合は、同様のエラーが発生します。

関連する問題