2017-07-13 2 views
1

このHTMLファイル私のAPIコールは、JavaScriptで仕事をdoesnotが、私は(私はバックエンドの私traceballに何を見ることはできません送信されません、私のブラウザ要求でこれを実行すると郵便配達やブラウザ

<html> 
    <head> 
     <title>"api call"</title> 

    </head> 
     <body> 
      <div id="demo"> 

       <script> 
        function list() { 
         var xhttp = new XMLHttpRequest(); 
         xhttp.open("GET","192.168.0.101:8000/students/",true); 
         xhttp.setRequestHeader("Content-type", "application/json"); 
         xhttp.setRequestHeader("Authorization", "Token ad4140b1caa4f98160bdc979a71a7215ae5972fe"); 
         xhttp.send(); 
         var1 response = JSON.parse(xhttp.responseText); 
         document.write(var1); 
        } 

       </script> 

       <button type="button" onclick="list()">click to get the list</button> 

      </div> 
     </body> 
</html> 

にして正常に動作します) ブラウザで使用される場合は、URLが正常に動作して郵便配達 this is the screenshot of postman request and response

バックエンドはDjangoの

である、これは私がコンソール

で取得エラーです
var1 response = JSON.parse(xhttp.responseText); 

エラー:キャッチされないでSyntaxError:予期しない識別子

+1

するには、どのようなエラーが発生するのですか? –

+0

@ Alexandru-IonutMihai私は編集しました、最後に見ることができます –

+0

私のanwerを見てください。 –

答えて

0

私はあなたの問題はxhttp.openコードであると信じています。 "GET"を実行するように要求すると、最後のブール値をtrueに設定すると、リクエストは非同期で実行されます。この変数をfalseに設定する必要があります。これは、応答が受信されるまでメソッドが返されないことを意味します。

はに

xhttp.open("GET","192.168.0.101:8000/students/",true); 

を変更してみてください:ここで

xhttp.open("GET","192.168.0.101:8000/students/",false); 

良い情報源です:

希望します。

あなたがサーバーの所有者であると思われるので

EDITは、手動でサーバー上のCORSヘッダーを実装しようとすることができ、または(CORSをバイパスする)JSONPを使用しています。 CORSのsome infoがあり、MDNに実装されています。 SOにはnice sourceもあります。がんばろう!

+0

はい、それは良いことですが、ajaxには 'async:false'を使うことはお勧めできません(悪い習慣です)。なぜなら、ウィンドウがフリーズしてしまうからです。 –

+0

これは覚えておくと良いです! Kethanが要求を非同期に保つことを可能にする[ajax promise](https://stackoverflow.com/questions/39751395/whats-the-difference-between-promise-and-ajax)を実装したいのであれば、そうでしょうか? – cosinepenguin

+0

@cosinepenguinいいえ、うまくいきませんでした –

1

requestを作成すると、応答内容が自動的に解析されます。

変更

var1 response = JSON.parse(xhttp.responseText); 

var1 response = xhttp.responseText; 
+0

捕捉されないにReferenceErrorが追加されているスクリーンショットを参照@cosinepenguin –

関連する問題