2016-12-05 10 views
0

を通じてハードウェアを使用して、私はメモリのゲームのためのボタンがクリックされた後に、それは2つのことを行うだろう、というWebページを作成しようとしています:だから、Webページ

  1. それは私は、ハードウェアの中で書いたクラウド機能を設定しますそれに応じて行動してください。
  2. 別のWebページに完全に移動します。

ただし、これを行うようにしようとすると動作しません。ハードウェアが正しいメッセージを受け取っているかどうかはまだわかりませんが(まだテストしていませんが)、次のページに行くことができます。テストを通じて、$.post(requestURL, { params: thisGame, access_token: accessToken });がコメントアウトされている場合は次のページに進みます。

、どのような援助が非常に高く評価されてください

<!DOCTYPE html> 
<html> 
    <body> 
     <input id="Memory Button" type="button" value="Memory Game" onclick="myFunction1('Memory')"/> 

     <script language="javascript" type="text/javascript"> 

      var deviceID = "device id"; 
      var accessToken = "access token"; 
      var baseURL = "https://api.particle.io/v1/devices/"; 
      var whichGame="setGame"; 

      function myFunction1(thisGame) 
      { 
       var requestURL = "https://api.spark.io/v1/devices/" + deviceID + "/" + whichGame + "/?access_token=" + accessToken; 

       $.post(requestURL, { params: thisGame, access_token: accessToken }); 

       myFunction2(); 
      } 

      function myFunction2() 
      { 
       window.location.href = 'http://twin-cities.umn.edu/'; 
      } 

     </script> 
    </body> 
</html> 
+0

コンソールエラーはありますか? –

+0

'$ .post'からコールバックを取得するまでウィンドウの位置を変更しないでください –

+0

' my.Function2'を '$ .post'のコールバックにするべきですか?あなたの '$。post'が完了する前にあなたのハードウェアが何かを受け取っていないと、' post'は非同期です。 – somethinghere

答えて

0

変更:

function myFunction1(thisGame) 
{ 
    var requestURL = "https://api.spark.io/v1/devices/" + deviceID + "/" + whichGame + "/?access_token=" + accessToken; 

    $.post(requestURL, { params: thisGame, access_token: accessToken }); 
     myFunction2(); 
} 

に:

function myFunction1(thisGame) 
{ 
    var requestURL = "https://api.spark.io/v1/devices/" + deviceID + "/" + whichGame + "/?access_token=" + accessToken; 

    $.post(requestURL, { params: thisGame, access_token: accessToken }) 
     .done(myFunction2) 
     .fail(function(){ alert('FAIL!'); }); 
} 

とは、単に<html>タグの後にこれを追加します。

<head> 
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js'></script> 
</head> 
+0

コメントありがとう!残念ながら、それはまだ私のために働かなかった。 – user4826575

+0

jqueryをページに含める方法を示すために私の答えを更新しました。 –

+0

OMG!それは次のページに行きました!大丈夫、ありがとうございます。私は苦労して非常に混乱していた。私は#1の仕事も同様にしてみようとします。再度、感謝します! – user4826575

2

は次のようにヘッダー内のjqueryのCDNを含める:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

そして、あなたは、次のコードでAJAXを使用してみてください可能性があります

「データ」は、すべて含む文字列化されたオブジェクトである
var ajax = $.ajax({              
     url: yourURL, 
     data: data, 
     type: 'POST', 
     beforeSend : function(xhr) { 
      xhr.setRequestHeader("token", token_value);   //append token to header 
     }, 
     error : function(response){      //if something went wrong on server 
      console.log(response); 
      alert("Something went wrong. Please try later."); 
     }, 
     success: function(response){ 
      //call the function you wanted to call here 
     } 
    }); 

送信するデータ

+0

ありがとうございます!だから、トークンはどこに行くのですか?それはヘッダーに – user4826575

+0

トークンを追加すると言うtoken_valueはここでトークン変数です。 – user2507

+0

もう一度おねがいします。それはajaxの変数ですか、それとも自分のハードウェア用の自分のアクセストークンですか? – user4826575