2017-02-25 68 views
-2

我無法弄清楚這一點,我問過幾個人,我們很難過。我通常不會使用AJAX,但我覺得我必須在這種情況下。我如何通過AJAX將此信息發送到POST

難道別人我會用這個嗎?

<!DOCTYPE> 
<html> 
    <body> 
    <center> 
    <br> 
    <br> 
    <br> 
    <form> 
    Tell your device what to do!<br> 
    <br> 
    <input type="radio" name="arg" value="on">Turn the LED on.</input> 
    <br> 
    <input type="radio" name="arg" value="off">Turn the LED off.</input> 
    <br> 
    <input type="radio" name="arg" value="blueSwap">Toggle Blue.</input> 
    <br> 
    <input type="radio" name="arg" value="allSwap">Toggle All.</input> 
    <br> 
    <br> 
    <input type="submit" value="Do it!"/> 
    </form> 
    <br> 
    </center> 

    <script 
    src="https://code.jquery.com/jquery-2.2.4.min.js" 
    integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" 
    crossorigin="anonymous"></script> 

    <script> 
    let url = 'https://api.particle.io/v1/devices/2f0021000547353138383138/led?access_token=150a347fb4277975913f5dfe24e2fb739171b3c5' 

    $('form').on('submit', (e) => { 
     e.preventDefault() 
     let data = $(this).serialize() 
     $.ajax({ 
     url: url, 
     type: 'POST', 
     data: data 
     }).done(() => { 
     console.log('sent') 
     }) 
    }) 
    </script> 
    </body> 
</html> 
+1

這是一個成形差的問題。有關建議請參閱:http://stackoverflow.com/help/how-to-ask –

+0

什麼是問題?在所有情況下done()被調用。 –

回答

0

此代碼適用於我。

也許換你的腳本在此:

$(function(){ 

... 

}); 

這將等待運行的代碼(從而綁定submit事件),直到整個頁面加載。這可能是因爲您的<form>在事件綁定之前未加載。但是,正如我所說的,我可以在開發人員工具的網絡標籤中看到POST已發送到服務器。

+0

它必須是API的東西然後 - 我不明白它 –

1

並非所有的瀏覽器都支持Arrow Function。您可以嘗試使用常規ECMAScript 5,並查看它的工作原理。

演示:https://jsfiddle.net/rab5j0ua/

請確保輸入標籤<input.../><input...>...</input>

<!DOCTYPE> 
<html> 
<body> 
    <center> 
     <br> 
     <br> 
     <br> 
     <form> 
      Tell your device what to do!<br> 
      <br> 
      <input type="radio" name="arg" value="on" />Turn the LED on. 
      <br> 
      <input type="radio" name="arg" value="off" />Turn the LED off. 
      <br> 
      <input type="radio" name="arg" value="blueSwap" />Toggle Blue. 
      <br> 
      <input type="radio" name="arg" value="allSwap" />Toggle All. 
      <br> 
      <br> 
      <input type="submit" value="Do it!" /> 
     </form> 
     <div id="result"></div> 
     <br> 
    </center> 

    <script src="https://code.jquery.com/jquery-2.2.4.min.js" 
      integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" 
      crossorigin="anonymous"></script> 

    <script> 
     var url = 'https://api.particle.io/v1/devices/2f0021000547353138383138/led?access_token=150a347fb4277975913f5dfe24e2fb739171b3c5' 

     $('form').submit(function (e) { 
      e.preventDefault(); 
      var data = $(this).serialize(); 
      $.ajax({ 
       url: url, 
       type: 'POST', 
       data: data 
      }) 
       .success(function (result) { 
        $('#result').text(JSON.stringify(result)); 
        console.log(result); 
       }); 
     }); 
    </script> 
</body> 
</html> 
+1

東西這麼小,但非常具有破壞性:P ...很好的答案! – Evochrome

相關問題