2016-12-22 27 views
0

私が取り組んでいるREST APIにアクセスしようとしています。このアプリケーションのクライアントはAngularJSウェブサイトです。私は次のエラーを取得するREST APIを呼び出すとき

のHTTPリクエストの設定URLが オブジェクトを信頼できる文字列または$のSCEでなければなりません。受信: { "メソッド": "URL" を "GET": "http://localhost:51615/api/Call/2/ {\ "要求\":\ "INIT \"}" ...}}

私が使用しているコードがありますこの:

var json = JSON.stringify({ 
     Request: 'INIT' 
    }), 
    req = { 
     method: 'GET', 
     url: 'http://localhost:51615/api/Call/2/' + json, 
     headers: { 
      'Content-Type': 'application/json' 
     } 
    } 

console.log('req : ', req) 

$sce.trustAsResourceUrl(req.url) 
$http.get(req) 
    .success(function (response) { 
     console.log(response) 
    }) 
    .error(function (error) { 
     console.error(error) 
    }); 

エラーが$http URLは文字列ではなく、限り、私はそれを見ることができるようであるしなければならないことを私に伝えます。だから何が問題だろうか?

+0

文字列化:


もう一つの方法は、要求のための速記を使用するのではないだろう、その場合には、あなたが$http()に、作成したオブジェクト(REQ)を渡すことができますあなたはそれなしでURLを試しましたか? docsは.get(url、config)を持つ.getメソッドを持っています。引数には1つのオブジェクトがあります。上記のままにしたい場合は、.getを使わずに基本的なhttpを使ってみてください。 – alphapilgrim

+0

JSONには、「{} []」などのURLで安全でない文字が含まれているため、少なくともエスケープする必要があります。 POSTメソッドはJSONの方が一般的です。 GET経由でいくつかのパラメータを渡す必要がある場合は、http:// localhost:51615/api/Call/2?Request = INIT&foo = 5&その他の構文をRESTのように見せてください。 –

答えて

1

reqは明らかにオブジェクトです。代わりにreq.urlを試してください。構成オブジェクト(req)を第2パラメータとしてthe documentation explainsとして渡すことができます。

$http.get(req.url /*String*/, req /*object*/).then() 

それはリクエストメソッドを角度伝えるために必要とされていない、それはすでに$http.getに入るということに注意してください。だからあなたのコードは、この

var json = JSON.stringify({ 
    Request: 'INIT' 
}), 
config = { 
    headers: { 
     'Content-Type': 'application/json' 
    } 
}, 
url = 'http://localhost:51615/api/Call/2/' + json; 

$http.get(url, config) 
    .then(successCallback, errorCallback); 

のように働くだろう文字列を送信get要求におけるアプリケーション/ JSONヘッダは、あなたが望むものであるならば、私にもわからないんだけど、それはまた別の話です。あなたはJSONを持っていない理由

$http(req) 
    .then(s, e); 
関連する問題