Nginx配置-Ajax跨域請求方式爲PUT,DELETE

後臺API使用了RESTful Api的接口設計,前端頁面這裏使用了Nginx代理進行跨域調試。

當請求方式是DELETE、PUT的時候,出現了405 Method not Allowed 錯誤,而且請求的方式變成了OPTIONS。

配置所有跨域請求:add_header Access-Control-Allow-Origin *;

但這裏只支持簡單的請求方式:GET,POST,OPTIONS,使用DELETE,PUT請求,屬於複雜請求,複雜的跨域請求HTTP首先會發一個OPTIONS請求,

經過服務器的同意,再轉爲對應的DELETE,PUT請求,所以這裏需要後端去設置。

這裏我用的nginx,那麼直接在配置裏面改一下就好了。

出了允許跨域的配置,還需要設置允許的請求方法(請求謂詞):

add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;

加上一個判斷:

if ($request_method = 'OPTIONS') {
		add_header Access-Control-Allow-Origin *;
		add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
		return 200;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章