2016-05-24 29 views
1

JavaScriptを使用してREST APIを呼び出す非常に基本的なHTMLアプリケーションを作成しています(これは価値があり、HBase REST APIです)。現在のところ、私の呼び出しは適切な応答を与えません。応答コード0(正当な応答コードではありませんが、本質的には空の応答です)。空のstatusText;空のresponseText。Javascriptを使用してREST APIを呼び出す

私の本能はこの種の応答で、私のURLに問題があることになります。私はURLを出力しました。 URLは次のようになります。http://hbase_server.com:8080/table_name/key

私はcurl -i http://hbase_server.com:8080/table_name/keyを実行しました。これは私が期待していた応答を与えてくれました。私のURLが少なくとも正しいことを示しています。私は以下のコードを投稿しています。私はJavaScriptの経験が非常に限られているので、私は明らかな誤りを犯している可能性が非常に高いです。

function sendRequest() 
{ 
    var key = document.getElementById("Key").value; 
    var url = "http://hbase_server:8080/table_name/" + key + ""; 
    var req = new XMLHttpRequest() 
    // Create the callback: 
    req.onreadystatechange = function() { 
     if (req.readyState != 4) return; // Not there yet 
     if (req.status != 200) { 
      document.getElementById("result").innerHTML = "Status: " + req.statusText; 
      return; 
     } 
     // Request successful, read the response 
     var resp = req.responseText; 
     document.getElementById("result").innerHTML = resp; 
    } 
    req.open("GET", url, true); 
    req.send(); 
    document.getElementById("result").innerHTML = url; 
} 
+0

あなたは[jQuery](https://jquery.com/)の使用を検討しましたか? –

+0

これを行うには、残りの部分を同じドメインとポート(http://hbase_server.com:8080)から呼び出す必要があります。 (CORS javascriptを検索してください) – mplungjan

答えて

1

あなたは「"Same-origin policyとして知られているものに苦しんでいる。それはコードがからロードされたドメインから異なるため、あなたのクライアントはあなたがあなたのリクエストで使用しているURLへの呼び出しを行うようにコードを妨げています要求するページが同じドメイン上にあるか、サーバが適切なCORS headersを設定しない限り、原因same-origin policyに(つまり、ローカルホスト)。

+2

だから、なぜdownvoteですか? –

+1

私は同じと思う。おそらくそれが事実であるかどうかわからない限り、それはもっと多くのコメントであるかもしれません。 – mplungjan

+0

その後、フラグがより適切でしょう。 –

2

、あなたはXHRを使用してデータをフェッチすることができません。

は、ブラウザのを開いてみてください開発者コンソールでこれに関連するエラーがあるかどうかを確認してください。

+1

もう1つのdownvote、明らかにこれはこの場合の問題です。 –

+0

私は開発者のコ​​ンソールに私を指摘してくれてありがとうございました。あなたが言及したエラーです。 – swinefish

+0

上記の場合、データ型がjsonpとして指定されていることを確認してください。 https://en.wikipedia.org/wiki/JSONP –

関連する問題