Ajax跨域請求,設置content

在使用Ajax跨域請求時,若是設置Header的ContentType爲application/json,會分兩次發送請求。第前端

一次先發送Method爲OPTIONS的請求到服務器,這個請求會詢問服務器支持哪些請求方法(GET,POST等),json

支持哪些請求頭等等服務器的支持狀況。等到這個請求返回後,若是原來咱們準備發送的請求符合服務器的規則,那麼纔會繼續發送第二個請求,不然會在Console中報錯。跨域

 

注意Note後面的描述,在跨域的時候,除了contentType爲application/x-www-form-urlencoded, multipart/form-data或者text/plain外,都會觸發瀏覽器先發送方法爲OPTIONS的請求。瀏覽器

好比說,你原來的請求是方法方法POST,若是第一個請求返回的結果Header中的Allow屬性並無POST方法,服務器

那麼第二個請求是不會發送的,此時瀏覽器控制檯會報錯,告訴你POST方法並不被服務器支持。app

 

 

不只如此,若是想要用ContentType:application/json發送跨域請求,服務器端還必須設置一個名爲url

Access-Control-Allow-Headers 的Header,將它的值設置爲 Content-Type,代表服務器可以接收code

到前端發送的請求中的ContentType屬性並使用它的值。不然第二次請求也是發不出去的,瀏覽器console會orm

報錯,並提示你服務器沒有設置Access-Control-Allow-Headers。ip

相關文章
相關標籤/搜索