-->

改变内容类型时,HTTP的方法改变从POST到OPTIONS(Http-Method changes

2019-06-26 02:58发布

我使用的封库做一个简单的POST。 我认为XhrIo应该从我的机器,因为在工作的时候使用任何其他REST客户端,如Firefox浏览应用程序RESTClient实现或Chrome浏览器的简单的REST客户端,我可以让POST请求到服务器和内容类型的应用程序/ JSON。

但是从我的申请,我无法作出一个职位。 我使用下面的代码

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'}作为第四参数,报头改变

HTTP的方法:OPTIONS
内容类型:

我不应该能够用封库就像RESTClient实现不使用JQuery的XMLHttpRequest的适当改变头?

还有别的方法可以标题进行修改,以使它看起来像这样

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

感谢所有帮助埃迪

Answer 1:

当您添加标题,一个XHR对象,大多数浏览器会做一个预检要求,这是OPTIONS方法,你所看到的。 没有办法绕过这个,如果你添加自定义标题,很可惜。 该POST将在后发送OPTIONS

本文介绍了OPTIONS请求位。 我跑与预检问题而回,如果这是任何帮助。

如果您有具体问题与OPTIONS要求你应该编辑您的问题,包括他们。 否则,这是预期的行为。



Answer 2:

FWIW矿也没有,当我指定的更新类型...

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

但是,如果我纠正的情况下

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

... 有效。

去搞清楚。



Answer 3:

如果你是合格Content-Typeauthorization请求,它会转换POST方法OPTIONS方法,这样当我们在使用ouath并通过授权令牌的时间不要求Content-Type

所以, 不要通过 Content-Type所有authorization请求时,它不会改变你的方法POSTOPTIONS



文章来源: Http-Method changes from POST to OPTIONS when changing Content-Type