更改Content-Type时,Http-Method从POST更改为OPTIONS

Edd*_*die 4 javascript xmlhttprequest google-closure plovr

我正在使用闭包库来做一个简单的POST.我认为XhrI应该工作,因为当我使用任何其他休息客户端时,我的机器,如Firefox浏览器应用程序RESTClient或Chrome的简单休息客户端,我可以向服务器发出POST请求,内容类型是application/json.

但是根据我的申请,我无法发帖.我使用以下代码

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

如果我将标题保留为默认值,我会得到这个

Encoding: UTF-8
Http-Method: POST
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

如果我尝试通过传递{'content-type':'application/json'}第4个参数来更改标题,标题将更改为

Http-Method:选项
内容类型:

我是否应该能够使用Closure库正确地更改标头,就像RESTClient使用JQuery使用XMLHttpRequest一样?

如何更改标题以使其显示为这样

Encoding: UTF-8
Http-Method: POST
Content-Type: application/json;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

感谢Eddie的任何帮助

Ach*_*ave 8

当您向XHR对象添加标头时,大多数浏览器都会执行预检请求,这是OPTIONS您看到的方法.不幸的是,如果要添加自定义标头,则无法绕过此问题.在POST会后发出OPTIONS.

本文解释OPTIONS了一下这个请求.如果有任何帮助的话,在前一段时间遇到了预检问题.

如果您对OPTIONS请求有特定问题,您应该编辑您的问题以包含它们; 否则,这是预期的行为.