Nginx를 기반으로 Restful Api를 설계할 계획입니다. DELETE 및 PUT 요청 방법을 사용하고 도메인 간 액세스를 지원해야 합니다. 현재 로컬 가상 호스트의 테스트 도메인이 두 개 있습니다. http://api.zlzkj.com
和http://127.0.0.1/api/web
으아아아
ajax 요청으아아아
DELETE 요청 메소드는http://api.zlzkj.com/
下访问http://api.zlzkj.com/admins/1
에서 정상적으로 사용할 수 있습니다.
에서는 요청 방법이 OPTINOS 모드로 필터링되어 있음을 알 수 있습니다. 일반적으로 DELETE 모드여야 하며 이로 인해 서버의 405 방법이 허용되지 않습니다http://127.0.0.1/api/web/
下访问http://api.zlzkj.com/admins/1
방화벽에서 관련 글도 찾아봤는데, Nginx를 이렇게 구성한 후에는 DELETE 요청 방식을 도메인 간에 정상적으로 사용할 수 있는 것 같은데, 제 입장에서는 같은 도메인에서만 사용할 수 있는 것 같아요. 요청 방법은 도메인 전체에서 OPTINOS로 필터링되며 405 오류가 발생했습니다.
Nginx 버전에 문제가 있는 걸까요? 환경 구성에 문제가 있나요? 당신이 나에게 통찰력을 줄 수 있기를 바랍니다. 감사합니다.
某草草2017-05-16 17:17:58
OPTIONS
요청은 특별합니다. 이 메서드는 서버가 지원하는 다른 기능과 메서드를 알려주도록 요청하는 데 사용됩니다. OPTIONS
请求比较特殊,该方法用于请求服务器告知其支持哪些其他的功能和方法。
在跨域的时候,浏览器会自动发起一个OPTIONS
请求。
当你的服务器响应了OPTIONS
请求的时候,会有类似如下的响应:
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
如果你的服务器没有处理响应OPTIONS
,会有如下的响应:
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
响应头
所以,你应该有处理这个OPTIONS
교차 도메인인 경우 브라우저는 자동으로 OPTIONS
요청을 시작합니다.
서버가 OPTIONS
요청에 응답하면 다음과 유사한 응답이 표시됩니다.
OPTIONS
응답을 처리하지 않으면 다음과 같은 응답이 표시됩니다. 🎜
으아아아
🎜Allow
응답 헤더가 누락된 것을 볼 수 있습니다🎜따라서 이 OPTIONS
요청을 처리하는 서비스가 있어야 합니다. 이 작업은 nginx에서 직접 수행할 수 있습니다. 구성에 다음 구성을 추가하세요. 🎜
으아아아