2

Closure ライブラリでヘッダー Content-Type を application/json に変更できません。この xhr.send () はプリフライトされています。サーバー側で必要な構成を行いました。しかし、どういうわけか client から、Content-Type を変更できません。常に null のままです。このコード以外にヘッダーを強制的に変更する方法はありますか?

xhr.headers.set('Content-Type','application/json');

Http-Method: OPTIONS
Content-Type: 
Headers: {Accept=[*/*], Accept-Charset=[ISO-8859-1,utf-8;q=0.7,*;q=0.3], accept-encoding=[gzip,deflate,sdch], Accept-Language=[en-US,en;q=0.8], Access-Control-Request-Headers=[origin, content-type], Access-Control-Request-Method=[POST], connection=[keep-alive], Content-Type=[null], Host=[localhost:8181], Origin=[http://localhost], Referer=[http://localhost/?], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.168 Chrome/18.0.1025.168 Safari/535.19]}



Response-Code: 200
Content-Type: text/xml
Headers: {Allow=[POST, GET, OPTIONS, HEAD], Date=[Wed, 11 Jul 2012 16:31:04 GMT], Content-Length=[0]}
4

1 に答える 1

1

opt_headers マップの xhr.send() 関数にヘッダーを追加する必要があると思います。

goog.net.XhrIo.prototype.send = 関数 (url、opt_method、opt_content、opt_headers)

  • @param {string|goog.Uri} url リクエスト先の Uri。
  • @param {string=} opt_method 送信方法、デフォルト: GET。
  • @param {string|GearsBlob=} opt_content 投稿データ。基になる HTTP 要求オブジェクトが Gears HTTP 要求である場合、これは Gears blob である可能性があります。
  • @param {Object|goog.structs.Map=} opt_headers リクエストに追加するヘッダーのマップ。

そう:

var xhr = new goog.net.XhrIol
var headers = new goog.structs.Map;
headers.set('Content-Type','application/json')
xhr.send(uri, 'OPTIONS', null, headers);

似たようなものが私たちにとってはうまくいきます...

よろしく、

レネ

于 2012-07-12T20:25:11.917 に答える