2017-09-04 18 views
0

URLに変数を入力してJSON応答を行うAPIをDjangoで作成しました。JavaScriptのPOST APIからJSON応答を返す方法

たとえば、私たちはこのURLを持っている:

http://127.0.0.1:8000/api/string/IAMNEWTOJAVASCRIPT

とJSON応答は次のとおりです。

{"id": 1, "string": "iamnewtojavascript"} 

JavaScriptでこのJSONを返す方法。私はウェブを検索しましたが、結果のどれも私に満足のいく答えを与えませんでした。 Pythonで

コードは、この単純です:

あなたはそのための 'XMLHttpRequestの' を使用JavaScriptでは
import requests 
import json 

url = "http://127.0.0.1:8000/api/string/IAMNEWTOJAVASCRIPT" 

req = requests.post(url) 
p = req.json() 
data = json.dumps(p) 
print(data) 
+0

結果のどれもあなたに満足のいく回答が得られませんでしたか?あなたは何かを試しました、例えば、そのエンドポイントへの単純なajax呼び出し? – adeneo

+0

私は非常に新しいJSです。ほとんどの結果はJSON.stringifyを使用していましたが、これはJSONを手動でデータにPOSTすることです。私のAPIはURLの変数を使用しています。フレームワークは残りのコードを実行しています。 – ottomd

+1

APIがJSONを返す必要があります。あなたの現在のコードを理解する限り、JSONをサーバーコンソールに表示しているだけですが、誰かがあなたのAPIにPOSTリクエストを送ると何も返されません。 [まず、誰かがPOSTリクエストを送信している場合に何かを返す方法をお読みください。](http://docs.python-requests.org/ja/latest/user/quickstart/) つまり、[XMLHttpRequest APIを使用してPOSTリクエストを送信する](https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest)を使用できます。レスポンスオブジェクトには、APIのJSONが含まれます。 – Patte

答えて

0

。見てくださいhere

例:

var objectToSend = { 
    id: "1", 
    string: "iamnewtojavascript" 
}; 

var request = new XMLHttpRequest(); 

// callback function for readyState 
request.onreadystatechange = function(){ 
    if(this.readyState == 4 && this.status == 200) // check if request has completed, and check if server response is valid 
     alert(this.responseText) // alert received anwser from server 
} 

// open connection to server 
request.open("POST", /* URL GOES HERE */, true); 
// send "objectToSend" 
request.send(JSON.stringify(objectToSend)); 

サーバにPOSTリクエストを行う方法です。 HTTP-Post-Requestは、サーバー上にデータを作成するために使用されます。

しかし、あなたが使いたいものはHTTP-Get-Requestだと思います。これを行うには、request.open("POST", ...)request.open("GET", 'url', true);に変更し、パラメータなしでrequest.send()を呼び出してください。

HTTP-Post-RequestとHTTP-Get-Requestの違いについては、thisを参照してください。

+0

私はそれを試して、 "ReferenceError:XMLHttpRequestが定義されていません"を返します。私はインストールしようとしたが役に立たなかった。私はnpmを使ってインストールしようとしました。しかしそれは定義されていないと言います。 – ottomd

+0

Mhn、あなたはウェブサイトを構築しようとしていますか?ブラウザにXMLHttpRequestが組み込まれている必要があります。ノードアプリケーションを構築する場合は、https://www.npmjs.com/package/xmlhttprequest – kangaro0

+0

から取得してください.JavaScriptでは、JSONを同じ方法で抽出しようとしています私はPythonでやった。 AngularJSでこのAPIを使用していますが、ちょうど$ http.postで使いやすいです。 – ottomd

関連する問題