Javascript 无法将标题内容类型更改为application/json

Javascript 无法将标题内容类型更改为application/json,javascript,xmlhttprequest,cors,google-closure,Javascript,Xmlhttprequest,Cors,Google Closure,无法使用闭包库将标题内容类型更改为application/json。此xhr.send()已预引导。我已经在服务器端进行了必要的配置。但不知怎的,从客户端来看,我无法对内容类型进行更改,它始终保持为空。有没有什么方法可以强制更改标题而不是此代码 set('Content-Type','application/json') 我认为应该将标题添加到opt_headers映射中的xhr.send()函数中: goog.net.XhrIo.prototype.send=函数(url、opt_方法、opt

无法使用闭包库将标题内容类型更改为application/json。此xhr.send()已预引导。我已经在服务器端进行了必要的配置。但不知怎的,从客户端来看,我无法对内容类型进行更改,它始终保持为空。有没有什么方法可以强制更改标题而不是此代码

set('Content-Type','application/json')


我认为应该将标题添加到opt_headers映射中的xhr.send()函数中:

goog.net.XhrIo.prototype.send=函数(url、opt_方法、opt_内容、opt_标题)

  • @要向其发出请求的参数{string | goog.Uri}url Uri
  • @param{string=}opt_方法发送方法,默认值:GET
  • @param{string | GearsBlob=}opt_内容发布数据。如果底层HTTP请求对象是Gears HTTP请求,则这可能是Gears blob
  • @param{Object | goog.structs.Map=}opt_headers要添加到请求的头的映射
因此:

类似的东西对我们很好

问候,


Rene

HTTP
OPTIONS
请求通常没有内容主体,因此通常不需要内容类型。您是在试图指定响应应采用的格式,还是确实在试图设置请求的内容类型?是否应该xhr.setRequestHeader(“,”);?谢谢你的回复@Gareth我正在尝试设置请求的内容类型。@我尝试了您的方法并得到警告-属性setRequestHeader从未在goog.net.XhrIo上定义过。我正在以初始化方式尝试XHR。感谢Rene提供的指针,我可以成功发送POST请求。这是因为服务器/客户端网络不一致。
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]}
var xhr = new goog.net.XhrIol
var headers = new goog.structs.Map;
headers.set('Content-Type','application/json')
xhr.send(uri, 'OPTIONS', null, headers);