国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Nginx如何進(jìn)行跨域配置,才能使用DELETE,PUT請求方法
大家講道理
大家講道理 2017-05-16 17:15:58
0
2
1543

背景描述

準(zhǔn)備基于Nginx設(shè)計(jì)一個(gè)Restful Api,需要用到DELETE,PUT請求方式,并且要支持跨域訪問,目前有本地虛擬主機(jī)http://api.zlzkj.comhttp://127.0.0.1/api/web兩個(gè)測試域。

問題描述

nginx.conf相關(guān)跨域配置

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

ajax請求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>
<body>
    Resetful Api設(shè)計(jì)
    <script src="http://c.csdnimg.cn/public/common/libs/jquery/jquery-1.11.1.min.js"></script>
    <script>
        $.ajax({
            url: 'http://api.zlzkj.com/admins/1',
            type: 'DELETE',
            dataType: 'JSON'
        });
    </script>
</body>
</html>

http://api.zlzkj.com/下訪問http://api.zlzkj.com/admins/1可以正常使用DELETE請求方式

http://127.0.0.1/api/web/下訪問http://api.zlzkj.com/admins/1會發(fā)現(xiàn)Request Method過濾成OPTINOS方式了,正常應(yīng)該是DELETE方式,引起了服務(wù)器的405 Method Not Allowed

翻墻也找過一些相關(guān)文章,好像他們的Nginx這樣配置后就可以跨域正常使用DELETE請求方式了,而我這邊只有在同域下才能使用,跨域就會將Request Method過濾成OPTINOS方式了,就引起了了405錯(cuò)誤。
是Nginx版本的問題?環(huán)境配置的問題?希望大家能給點(diǎn)見解,謝謝了。

大家講道理
大家講道理

光陰似箭催人老,日月如移越少年。

全部回復(fù)(2)
某草草

OPTIONS請求比較特殊,該方法用于請求服務(wù)器告知其支持哪些其他的功能和方法。
在跨域的時(shí)候,瀏覽器會自動(dòng)發(fā)起一個(gè)OPTIONS請求。
當(dāng)你的服務(wù)器響應(yīng)了OPTIONS請求的時(shí)候,會有類似如下的響應(yīng):

Allow → GET,HEAD,POST,OPTIONS,TRACE
Cache-Control → max-age=86400
Connection → keep-alive
Content-Encoding → gzip
Content-Length → 20
Content-Type → text/html
Date → Thu, 30 Jun 2016 04:00:24 GMT
Expires → Fri, 01 Jul 2016 04:00:24 GMT
Server → bfe/1.0.8.14
Vary → Accept-Encoding,User-Agent

如果你的服務(wù)器沒有處理響應(yīng)OPTIONS,會有如下的響應(yīng):

Connection → keep-alive
Content-Encoding → gzip
Content-Type → text/html
Date → Thu, 30 Jun 2016 04:02:35 GMT
Server → nginx/1.4.6 (Ubuntu)
Transfer-Encoding → chunked

可以看出,缺少了Allow響應(yīng)頭Allow響應(yīng)頭
所以,你應(yīng)該有處理這個(gè)OPTIONS所以,你應(yīng)該有處理這個(gè)
請求的服務(wù),這個(gè)可以直接用nginx做,

在配置中,加一下如下的配置:??
if ($request_method = 'OPTIONS') { 
add_header Access-Control-Allow-Origin *; 
add_header Access-Control-Allow-Credentials true; 
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; 
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; 
return 204; 
}
PHPzhong

雷雷

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板