問題タブ [angular-http]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
61761 参照

jquery - JsonP が「Uncaught SyntaxError: Unexpected token:」を返す AngularJS - routingnumbers.info

私はこの質問をばかげた量で調査しましたが、誰かが何が間違っているかを診断するのを手伝ってくれることを願っています.

私はすでに次のSOの質問を見てみました: (SOは評判のために2つ以上のリンクを投稿できないので、パスを含めました)

  1. 質問/16344933/angularjs-jsonp-not-working/16352746#16352746
  2. 質問/19269153/jsonp-request-in-angularjs-doesnt-work-like-in-jquery
  3. 質問/19669044/angularjs-getting-syntax-error-in-returned-json-from-http-jsonp

中でも……

私が試したこと: &callback=JSON_CALLBACKを URL の末尾に 追加しました。responseType: 'JSON'などの構成設定を変更しました。また、http.jsonp リクエストを複数回再配置して、プログラム/テキスト ( http({}) & http.jsonp )でないことを確認しました。

これが私がやろうとしていることです: angular jsonp リクエストを使用してroutingnumbers.info/api/ から情報を取得します (サーバーは CORS を許可しません)。jQuery でリクエストを正常に作成できますが、angular では正常に作成できません。

対応するテスト フィドルは次のとおりです: http://jsfiddle.net/dqcpa/14/

ご覧のとおり、次の 2 つのエラーが表示されます。

  1. リソースはスクリプトとして解釈されますが、MIME タイプ text/plain で転送されます: " https://routingnumbers.herokuapp.com/api/data.json?rn=071000013&callback=angular.callbacks._0 "。angular.min.js:97
  2. キャッチされない SyntaxError: 予期しないトークン:

しかし、chrome devtools - NETWORK で応答を確認すると、正しいです。jsonp が jsonpfunction({ "MyJson": "Data"}) 内で応答を返すことはわかっていますが、ハングアップしている場所です。

元のコードは次のとおりです。

angularでこのAPIを使用した人はいますか? ヘッダーを変更するためにできること(sans jquery)があると思いますが、情報を見つけることができませんでした。また、サーバーの問題である可能性も考えています(ただし、jqueryで正しく機能している場合、それは問題ではありません)。多分これはHTTPSの何かかもしれません

TL:DR - Angular JSONP リクエストは機能していませんが、同じ URL で jQuery JSONP リクエストは機能しています。上記のコードを参照すると、何が欠けていますか?

どんな助けでも素晴らしいでしょう!

編集:いくつかの句読点など。

0 投票する
3 に答える
1354 参照

angularjs - AngularJs のサービスで $http を使用してデータをプリロードする最良の方法

$http を使用して AJAX 呼び出しを行うことにより、最初にいくつかのデータをロードするサービスを作成しようとしています。

私は次のようなものを見ています:

を使用してエンティティを返す前に、エンティティが完全に読み込まれていることを確認したいと思いgetEntityByIdます。

これを行う正しい方法を教えてください。私が知っている 1 つの方法は、同期 AJAX 呼び出しを行うことですが、他に良い方法はありますか? この場合、より良い方法でプロミスを使用できますか?

0 投票する
2 に答える
1186 参照

javascript - Angular 1.3.0 は JSON 応答を尊重しますが、Angular の前にこれをオーバーライドするか、応答を事前解析するにはどうすればよいですか?

Angular の最新リリース (v1.3.0) では、application/json の content-type ヘッダーの修正が追加されました。現在、有効な JSON ではないため、すべての応答でエラーが発生します。プレーン テキスト ヘッダーで応答するようにバックエンドを変更する必要があることはわかっていますが、現時点ではそれを制御できません。Angular が応答を解析する前に応答を事前に解析する方法はありますか?

これが彼らが行った修正だと思います: https://github.com/angular/angular.js/commit/7b6c1d08aceba6704a40302f373400aed9ed0e0b

私が抱えている問題は、バックエンドから取得した応答に、Angular がチェックしているものと一致しない保護プレフィックスがあることです。

構成に http インターセプターを追加しようとしましたが、それは役に立たず、Angular 自体の後で解析します。

コンソールに表示されるエラー (Angular での JSON 文字列の逆シリアル化によるものです):

0 投票する
1 に答える
942 参照

javascript - トランスフォーマーとインターセプターの適切な使用

ユーザーのプロファイルを更新するためにサービス層のエンドポイントに POST する場合、要求ペイロード (クライアントからの必要な変更を含むプロファイル) から特定の値を削除し、それらを応答ペイロード (からの更新されたプロファイル) に再アタッチする必要があります。サーバー)。私は現在、次のように、 Angular のrequest および response トランスフォーマーを使用して動作を実行しています。

デフォルトのリクエスト トランスフォーマーにトランスフォーマーを追加し、デフォルトのレスポンス トランスフォーマーにトランスフォーマーを追加します。私の質問は、これを行うためのより良い方法はありますか? ここに記載されているように、代わりにインターセプターを使用している可能性がありますか? もしそうなら、どのように?

0 投票する
1 に答える
1012 参照

angularjs - Angular $http がすべての応答ヘッダーを有効にするわけではありません

RESTful API の「X-Total-Count」応答ヘッダーを取得したいと考えています。ngResource 'User' のクエリ コールバック関数でヘッダーを取得しようとしているときに、$http が多くの応答ヘッダーを無視しているようです。

これらは私のリクエストの応答ヘッダーです:

ここでは、一連のユーザーをクエリしています。

それがコンソールの結果です:

では、なぜ $http の responseHeaders() 関数は 10 個のヘッダー プロパティのうち 2 個しか変換しないのでしょうか?

0 投票する
1 に答える
3220 参照

json - Web API は null 値を返します

サーバーからデータにアクセスするための Web Api コントローラーがあります。

これは angularJS コントローラーによって呼び出されます。

};

ブラウザネットワークには次のものがあります:

リクエスト ペイロード {}

応答ヘッダー:

[レスポンス] タブ: [{}]。

なにが問題ですか?

0 投票する
0 に答える
60 参照

angularjs - AngularJs: $scope は $apply フェーズにありますが、まだ $http リクエストはすぐに送信されませんか?

HTTP リクエストを送信しています。しかし、すぐには起動しません。そして、そのスコープが $apply フェーズにあることをすでに確認しました。なぜこれが起こっているのですか??

私のサービスのような:

`

私はそれをデバッグしようとします.そして、それは$http.post("")オンラインになり、次にオンreturn deferred.promiseになります.しかし、要求は発生しません.

前もって感謝します!!