これらのレコードを作成して更新するために、レコードとフォームでグリッドを実装しました。レコードを編集し、その後、それを保存する場合、クライアントは、次の行を通過します:TomcatサーバーへのExtJS PUT要求が許可されていません
var form = this.getView().getForm();
var record = form.getRecord();
record.beginEdit();
var updatedRecord = form.getValues();
record.set(updatedRecord);
record.endEdit();
それを行うことで、クライアントは、体内の更新されたパラメータでTomcatサーバーにPUTリクエストを送信します。
私はHTTPリクエストを送信するためには、ブラウザのプラグインを使用<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
私たちは、この応答に見ることができるように、すべてが正常である:
Tomcatサーバーはweb.xml
に設定され、すべてのHTTPメッセージを許可します
Status Code: 200 OK
Allow: PUT
Content-Language: en
Content-Length: 190
Content-Type: application/json
Date: Mon, 22 May 2017 12:21:40 GMT
Server: Apache-Coyote/1.1
しかし、ExtJSには、PUTリクエストを送信したとき、私は次の応答を取得:
HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: http://localhost:1337
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Access-Control-Allow-Origin,Access-Control-Allow-Credentials
Allow: DELETE,GET,OPTIONS
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 1056
Date: Mon, 22 May 2017 11:55:37 GMT
を
ExtJSがPUTリクエストを送信すると、tomcatがPUT、GET、POSTを許可しないのはなぜですか? ExtJSには、POSTリクエストを送信すると、すべてが正常に動作し、私は次の応答を得る:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:1337
Access-Control-Expose-Headers:Access-Control-Allow-Origin,Access-Control-Allow-Credentials
Content-Length:225
Content-Type:application/json
Date:Mon, 22 May 2017 12:59:07 GMT
Server:Apache-Coyote/1.1
私はPUTメッセージを許可するようにTomcatを取得するために行うには何がありますか?
それは役に立たなかった。 – Goldi
サーバーが期待しているヘッダーをすべて入れましたか?またはあなたにバックエンドのリクエストコードを表示することはできますか?あなたはあなたのMediaTypeをチェックしましたか? –
最新の編集済みの回答をご参照ください。お役に立てれば。 –