2017-11-03 60 views
1

我知道這是一個蹩腳的問題,我是一個菜鳥,所以很抱歉。我搜索了400錯誤和參考錯誤,我試圖弄清楚哪一個我需要關注,因爲一個可能導致另一個?或者他們都是完全不相關的錯誤?Javascript錯誤:400錯誤的請求和ReferenceError

下面的代碼是從我創建了一個頁面,需要一個人的路由號碼,帳戶號碼和名稱(使用PHP)的一個片段,然後使用條紋JS API來創建一個銀行帳戶。目標是使用微交易驗證此帳戶。作爲它現在的設置,我不明白爲什麼它不會發布到我指定的bankverify2.php頁面。有任何想法嗎?我需要提供更多的代碼嗎? 感謝社區。

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
    if (!empty($_POST["firstName"]) and !empty($_POST["lastName"]) and !empty($_POST["routingNumber"]) and !empty($_POST["accountNumber"])) 
    { 
    ?> 
     <form id="stripe-form" action="bankverify2.php" method="post"> 
      <input id="stripe-token" type="hidden" name="token" /> 
     </form> 
     <script src="https://js.stripe.com/v3/"></script> 
     <script> 
     var stripe = Stripe('pk_test_2LS3Dvu59TCBC5F2tPsehEry'); 
     stripe.createToken('bank_account', { 
     country: 'US', 
     currency: 'usd', 
     routing_number: '<?php echo $_POST["routingNumber"];?>', 
     account_number: '<?php echo $_POST["accountNumber"];?>', 
     account_holder_name: '<?php echo $_POST["firstName"] .' '.$_POST["lastName"];?>', 
     account_holder_type: 'individual', 
     }).then(function(result) { 
     // Handle result.error or result.token 
     // var token = blah.getToken(yada_yada); 
     var tokenBank = result.token; 
     $('#stripe-token').val(tokenBank); 
     $('#stripe-form').submit(); 
     });  

     </script> 

    <?php  
    } 
    else 
    { 
     echo 'Complete all of the fields.'; 
    } 
} 
提交表格後

Chrome檢查控制檯輸出: 無法加載資源:$在bankverify.php沒有定義 :服務器與 未捕獲的(以諾)的ReferenceError 400(錯誤請求)的狀態迴應:24 在

JS Chrome Console Error

+0

lol'bankverify.php:24'你去了,去檢查一下,第24行(這是什麼行?) –

+1

你有包括jQuery嗎? – regulus

+0

Regulus開始直接指向......(你可能沒有jquery),而當你在你的頁面輸入'$'進入控制檯時,按回車鍵,你應該得到......'ƒ(a, b){return new n.fn.init(a,b)}' –

回答

1

他們似乎無關。

對於引用錯誤,它似乎是您正在嘗試在您的文件中使用jQuery bankverify2.php是您的表單提交的操作,該操作似乎沒有在該上下文中定義。

至於錯誤的請求,您似乎錯誤地構建了您的請求。試着在你的承諾回調增加了對result.error支票,就像我下面做:

http://jsbin.com/fibagopeho/edit?js,console

這樣,你會得到登錄到控制檯找出什麼錯誤更清楚的錯誤消息。另外,您可以在您的網絡選項卡檢查請求的瀏覽器:

debugging-in-js-callback

對於PHP代碼,你可以嘗試檢查一個函數,如果它們都存在的,而不是具有長期的if語句:

$check_array = array('firstName', 'lastName', 'routingNumber'); 
    if (!array_diff($check_array, array_keys($_POST))) 
     // all are present