Ajax跨域请求,设置content

在使用Ajax跨域请求时,如果设置Header的ContentType为application/json,会分两次发送请求。第

一次先发送Method为OPTIONS的请求到服务器,这个请求会询问服务器支持哪些请求方法(GET,POST等),

支持哪些请求头等等服务器的支持情况。等到这个请求返回后,如果原来我们准备发送的请求符合服务器的规则,那么才会继续发送第二个请求,否则会在Console中报错。

 

注意Note后面的描述,在跨域的时候,除了contentType为application/x-www-form-urlencoded, multipart/form-data或者text/plain外,都会触发浏览器先发送方法为OPTIONS的请求。

比如说,你原来的请求是方法方法POST,如果第一个请求返回的结果Header中的Allow属性并没有POST方法,

那么第二个请求是不会发送的,此时浏览器控制台会报错,告诉你POST方法并不被服务器支持。

 

 

不仅如此,如果想要用ContentType:application/json发送跨域请求,服务器端还必须设置一个名为

Access-Control-Allow-Headers 的Header,将它的值设置为 Content-Type,表明服务器能够接收

到前端发送的请求中的ContentType属性并使用它的值。否则第二次请求也是发不出去的,浏览器console会

报错,并提示你服务器没有设置Access-Control-Allow-Headers。



转载于:https://www.cnblogs.com/daniao11417/p/10880326.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值