問題タブ [http-status-code-406]
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.
spring - クライアントに画像を送信する Spring Controller は 406 になります
リクエストに応じてフロントエンドに画像を送信しようとしています.JSONの一部としてリクエストボディに入れると機能しますが、画像/ pngを使用したいのですが、もっと理にかなっていますが、試してみると406が表示されますそれ。
コントローラ:
テスト (クライアント):
私は何が欠けていますか?
curl - curl を coldfusion cfhttp に変換する
私は魅力のように機能するcurl呼び出しを持っています:
curl -X POST -H 'Content-Type: application/xml' -H "X-ApiVersion: 1.0" -H "X-AccessToken: [api-token]" -d '[xml]' https://www.API.com
これを coldfusion に変換しようとしましたが、サーバーから 406 エラーが返されます。この問題で考えられるすべてを投げてみましたが、うまくいきません。どんな助けでも大歓迎です!ここにCFがあります:
angularjs - spring-mvc コントローラーから angularjs に json を送信する方法
angularjs と spring mvc restful Web サービスを使用して単純なアプリケーションを開発しようとしています。最初に、サーバーから json データを取得するためにhttp://localhost:8088/angular/demoを呼び出すインデックス ファイルをロードする必要があります。しかし、これに対して 406 許容できないエラーが発生します。
コントローラーの最初のメソッドは、メイン ページをロードするように記述しました。2 番目のメソッドは、ユーザー情報を JSON として応答する必要があります。
同じコントローラーで modelAndView を返すメソッドとデータを返す別のメソッドを持つのは間違っていますか? コントローラーで JSON データを提供するメソッドのみを使用する場合、最初のページをどのようにロードすればよいですか? 必要なすべてのライブラリを lib フォルダーに含めました。
index.jsp には次のものがあります。
コントローラーは次のとおりです。
リソース表現クラスは次のとおりです。
web.xml:
angular-servlet.jsp :
jquery - リソースの読み込みに失敗しました: サーバーは 406 (受け入れられません) のステータスで応答しました
Chrome と Firefox の両方で、ブラウザのコンソール ログにこのエラーが表示されます
GET doaminipaddress.port/n/d85639d2ff510307eedab9f654a0d8a4.js?q=y52W3GiXHD…886&url=http%3A%2F%2domain.net%2Fassets%2Fscripts%2Fjquery.min.js 406 (受け入れられません)
しかし、jQuery は、残りの JS ファイルを含むフォルダー内にあります。
jQuery をブラウザで直接開くと、正しく開きます。
私はもう試した
- 絶対パスから変更されたパス
- スクリプトフォルダの名前を変更
- すべてのタグが適切に閉じられていることを確認しました
- ヘッダーセクションはチェックされていますが、見たい場合はインケース
ヘッダ部
SOで同じエラー関連の質問を確認しましたが、フレームワークの使用中またはAjaxでこの問題が発生していますが、フレームワークを使用していないため、正しくロードされず、エラーが発生する理由が完全にわかりません次の更新試行では、jQuery が正しく読み込まれます。
asp.net - IIS で Accept ヘッダーの検証をバイパスするにはどうすればよいですか?
ASP.Net でホストされているNancy Web サイトがあり、多数のカスタム ルートがあります。これらのルートには、ファイル パス (例: /path/to/xml_file.xml
) のように見えるマッピングが含まれますが、ブラウザに表示される HTML ファイルに解決されます。ほとんどのファイルでは、これは正しく機能します。ただし、XML ファイル (および場合によっては他の MIME タイプ) を使用すると、IIS 8 Express から 406.0 HTTP エラーが発生し、それが明示的に示されます。
HTTP エラー 406.0 - 受け入れられません
ファイル拡張子がブラウザで受け入れられていないため、リソースを表示できません。
要求されたファイル拡張子でサポートされていない MIME タイプの Accept ヘッダーが含まれていたため、要求は拒否されました。
要求されたファイル拡張子の MIME 設定を確認して、この MIME タイプが受け入れられることを確認してください。
パスロジックを書き直さなくてもこのエラーが発生しないように、この検証をバイパスするための web.config 設定またはその他の手法はありますか? 私のGoogle検索は失敗しています。たとえば、 SO Answerからリンクされているこの IIS フォーラムの投稿を見つけました。
すべての要求を ASP.NET にマップし、ASP.NET の StaticFileHandler を使用して要求を処理します
ただし、投稿ではこれを行う方法について説明していません。また、適用されるようにも見えません。
編集:(上記のエラーページ画像を追加)
別のヒントとして、ナンシールートはフォームの明示的なビューを返します
したがって、コンテンツ ネゴシエーションをバイパスする必要があります。
java - Spring MVC + RestController はリソースに 406 を与える
小さな休憩アプリ用にプロジェクトを構成しています。Spring 4.2.2.RELEASE を使用しています @RestController でアノテーションを付けたコントローラーを作成するか、@ResponseBody を追加すると問題が発生します。css または js リソースが機能しなくなり、エラー 406 Not aceptable が送信されます。メッセージコンバーターが原因であると読みましたが、まだ問題があります。
前もって感謝します
私の設定。
春の設定:
コントローラー
EmpresaApiController の関数 listAll にコメントを付けると、問題なく動作します。しかし、追加すると、cssとjsが機能しません。
rest - spring mvc rest protocol buffers http 406 許容できないエラー
Spring MVC 4.1.5 を REST サポートと共に使用して、Google プロトコル バッファ メッセージ形式で動作する Web サービスを取得しようとしています。JSON形式でこの問題に言及している投稿をたくさん見ましたが、Googleプロトコルバッファ形式については言及していません。また、Spring フレームワークのドキュメントに protobufs 用の MediaType があるとは思えません (詳細は以下を参照) 。
ここに私のコントローラーコードがあります(を使用しても使用していなくても、products="application-xprotobuf" に違いはありません - 同じ 406 許容できないエラーです)
これが私のweb.xmlです
これが私の pom.xml です。Google protobuf ライブラリがここに追加されており、展開された .war ファイルの WEB-INF/lib フォルダーに配置されることに注意してください。
これが私のテストクライアントです
mvn test を使用してコマンドラインからクライアントを実行すると、次のエラーが表示されます
contentNegotiationManager の使用を提案している人を見ました
私のrest-servlet.xmlには、mvc:annotation-drivenタグがあります
また、デモパッケージに webConfig.java をドロップしました
webconfig.java(contentNegotationManagerの作業を行っている)の有無にかかわらず、406許容できないエラーが発生します。
Spring 4.1.3 または4.2.3 jarsで MediaType.APPLICATION_XPROTOBUF を見つけることができませんでした。
だから私はその値を MediaType.ALL に残しました(私はそれがうまくいくと思いますか?)
テストクライアントを実行すると、実際にテストを実行する前にこのメッセージが表示されます..
Acceptヘッダーに「application-xprotobuf」値も含めるように設定していることを明確に示しています。この場合、何が欠けているのかわかりません。
angularjs - GET リクエストはローカルで機能し、テスト サーバーでは HTTP 406 を返します
AngularJS 1.4 と Spring 4 RestController を使用しています。開発マシンで GET リクエストを行うと、すべて正常に動作します。しかし、まったく同じ war ファイルをテスト サーバーにデプロイすると、まったく同じブラウザーからのまったく同じ要求が HTTP 406 Not Acceptable を返します。
2 つの環境の唯一の違いは、開発マシンでは埋め込み Tomcat 8 を使用しているのに対し、テスト サーバー アプリでは Tomcat 7 にデプロイされていることです。
私のリクエストは、電子メール アドレスを含む単一のパス変数で構成されています。
リクエストを行う angularjs コード:
リクエストを受け付けるスプリングコントローラー
そのような動作を引き起こす可能性があると考えられる理由はありますか?