5

クロージャーライブラリを使用して単純なPOSTを実行しています。FirefoxブラウザーアプリRESTClientやChromeのSimpleRestClientなど、他のレストクライアントを使用するときに自分のマシンからサーバーにPOSTリクエストを送信でき、コンテンツタイプがapplication / jsonであるため、XhrIoは機能するはずです。

しかし、私のアプリケーションからは投稿できません。私は次のコードを使用しています

xhr = new goog.net.XhrIo;
xhr.send('http://myhost:8181/customer/add','POST', goog.json.serialize(data));

ヘッダーをデフォルトのままにすると、これが表示されます

Encoding: UTF-8
Http-Method: POST
Content-Type: application/x-www-form-urlencoded;charset=UTF-8

{'content-type':'application/json'}4番目のパラメーターとして渡してヘッダーを変更しようとすると、ヘッダーは次のように変更されます。

Http-Method:OPTIONS
Content-Type:

RESTClientがJQueryを使用してXMLHttpRequestで行うように、Closureライブラリでヘッダーを適切に変更できるべきではありませんか?

他にどのようにヘッダーを変更してこのように表示することができますか

Encoding: UTF-8
Http-Method: POST
Content-Type: application/json;charset=UTF-8

エディの助けに感謝します

4

3 に答える 3

9

XHRオブジェクトにヘッダーを追加すると、ほとんどのブラウザーはプリフライトリクエストを実行します。これは、表示されているOPTIONSメソッドです。残念ながら、カスタムヘッダーを追加する場合、これを回避する方法はありません。のPOST後に送信されますOPTIONS

この記事でOPTIONSは、リクエストについて少し説明します。それが助けになるなら、私はしばらく前にプリフライトで問題に遭遇しました。

リクエストに特定の問題があるOPTIONS場合は、質問を編集してそれらを含める必要があります。それ以外の場合、これは予期される動作です。

于 2012-07-07T19:39:35.303 に答える
2

私が指定したとき、FWIW鉱山もタイプを更新できませんでした...

{'content-type':'application/json'}

しかし、私がケースを修正した場合

{'Content-Type':'application/json'}

... 機能した。

図に行きます。

于 2014-01-17T15:51:15.077 に答える
0

Content-Typeリクエストに応じて渡すと、メソッドがメソッドauthorizationに変換されるため、 ouathを使用して認証トークンを渡す間は、その時間は必要ありません。POSTOPTIONSContent-Type

したがって、すべてのリクエストを渡さ ないでください。メソッドが次のように変更されることはありません。Content-TypeauthorizationPOSTOPTIONS

于 2017-08-17T13:46:17.303 に答える