다음 코드 (PouchDB Authentication 플러그인 사용)는 브라우저가 CORS 프리 플라이트 요청을 보내도록하고 CouchDB가 OPTIONS
HTTP 메소드를 지원하지 않으므로 실패합니다.CORS 프리 플라이트 요청을 트리거하는 PouchDB 인증
var db = new PouchDB("http://localhost:5984/mydb");
db.login('username', 'password');
// assume the database URL and login info are valid
다음은 오류입니다 (Chrome). 이 문제는 Edge에서도 발생하지만 Firefox에서는 발생하지 않습니다.
XMLHttpRequest는 http://localhost:5984/_session을로드 할 수 없습니다. 프리 플라이트에 대한 응답이 잘못 HTTP 상태 코드가 405
그리고 여기가 크롬 (그들은 Firefox에서 유의 한 차이가 있습니다) 요청에 대한 보내는 헤더입니다
POST /_session HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 25
Accept: application/json
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
이미 활성화 한 CORS를 통해 add-cors-to-couchdb
노드 스크립트. 상황이 내가 시도 :
- 수동
login
그래서
에 세 번째 인수로 { ajax: { content_type: "text/plain" } }
전달 내 local.ini
[cors]
아래의 방법으로 OPTIONS
를 추가, 내 질문은 :
- 프리 플라이트 요청이 실행되지 않게하려면 어떻게해야합니까? MDN documentation을 보면 필요하지 않은 것 같습니다.
- 이전 버전을 사용할 수 없다면 프리 플라이트 요청에 응답하도록 내 CouchDB 서버를 어떻게 설정할 수 있습니까?
감사합니다. 불행히도, 설명대로 원점을 지정하려고 시도한 결과는 이전과 동일합니다 (동일한 오류, 인증 없음). 또한 링크에 대한 감사, 정보는 매우 도움이됩니다! – rvighne