couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nolan Lawson (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (COUCHDB-2245) Couch returns 404 for OPTIONS in Chrome web worker
Date Mon, 19 May 2014 20:29:38 GMT

     [ https://issues.apache.org/jira/browse/COUCHDB-2245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Nolan Lawson updated COUCHDB-2245:
----------------------------------

    Description: 
See [the PouchDB issue|https://github.com/pouchdb/pouchdb/pull/2254] for full details, or
here's a TLDR:

1. Run {{telnet localhost 5984}}
2. Paste in the following:

{code}
OPTIONS /my_database_name HTTP/1.1
Host: localhost:5984
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/34.0.1847.137 Safari/537.36
Access-Control-Request-Headers: accept, content-type
Accept: */*
Referer: http://localhost:8000/tests/test.html?grep=browser.worker.js%20create%20remote%20db
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
{code}

You'll correctly get back:

{code}
HTTP/1.1 204 No Content
Server: CouchDB/1.5.0 (Erlang OTP/R16B03)
Date: Mon, 19 May 2014 20:25:48 GMT
Content-Length: 0
Access-Control-Max-Age: 12345
Access-Control-Allow-Origin: http://localhost:8000
Access-Control-Allow-Methods: GET, PUT, POST, HEAD, DELETE
Access-Control-Allow-Headers: accept, content-type
Access-Control-Allow-Credentials: true
{code}

Now paste in:

{code}
OPTIONS /my_database_name HTTP/1.1
Host: localhost:5984
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/34.0.1847.137 Safari/537.36
Access-Control-Request-Headers: accept, referer, content-type
Accept: */*
Referer: http://localhost:8000/tests/test.html?grep=browser.worker.js%20create%20remote%20db
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
{code}

And you'll get:

{code}
HTTP/1.1 404 Object Not Found
Server: CouchDB/1.5.0 (Erlang OTP/R16B03)
Date: Mon, 19 May 2014 20:26:42 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 44
Cache-Control: must-revalidate
Access-Control-Expose-Headers: Content-Type, Server
Access-Control-Allow-Origin: http://localhost:8000
Access-Control-Allow-Credentials: true

{"error":"not_found","reason":"no_db_file"}
{code}

This is unfortunate, because Chrome web workers seem to be sending the second value for {{Access-Control-Request-Headers}}
by default.

  was:
See [the PouchDB issue|https://github.com/pouchdb/pouchdb/pull/2252] for full details, or
here's a TLDR:

1. Run {{telnet localhost 5984}}
2. Paste in the following:

{code}
OPTIONS /my_database_name HTTP/1.1
Host: localhost:5984
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/34.0.1847.137 Safari/537.36
Access-Control-Request-Headers: accept, content-type
Accept: */*
Referer: http://localhost:8000/tests/test.html?grep=browser.worker.js%20create%20remote%20db
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
{code}

You'll correctly get back:

{code}
HTTP/1.1 204 No Content
Server: CouchDB/1.5.0 (Erlang OTP/R16B03)
Date: Mon, 19 May 2014 20:25:48 GMT
Content-Length: 0
Access-Control-Max-Age: 12345
Access-Control-Allow-Origin: http://localhost:8000
Access-Control-Allow-Methods: GET, PUT, POST, HEAD, DELETE
Access-Control-Allow-Headers: accept, content-type
Access-Control-Allow-Credentials: true
{code}

Now paste in:

{code}
OPTIONS /my_database_name HTTP/1.1
Host: localhost:5984
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/34.0.1847.137 Safari/537.36
Access-Control-Request-Headers: accept, referer, content-type
Accept: */*
Referer: http://localhost:8000/tests/test.html?grep=browser.worker.js%20create%20remote%20db
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
{code}

And you'll get:

{code}
HTTP/1.1 404 Object Not Found
Server: CouchDB/1.5.0 (Erlang OTP/R16B03)
Date: Mon, 19 May 2014 20:26:42 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 44
Cache-Control: must-revalidate
Access-Control-Expose-Headers: Content-Type, Server
Access-Control-Allow-Origin: http://localhost:8000
Access-Control-Allow-Credentials: true

{"error":"not_found","reason":"no_db_file"}
{code}

This is unfortunate, because Chrome web workers seem to be sending the second value for {{Access-Control-Request-Headers}}
by default.


> Couch returns 404 for OPTIONS in Chrome web worker
> --------------------------------------------------
>
>                 Key: COUCHDB-2245
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-2245
>             Project: CouchDB
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>            Reporter: Nolan Lawson
>
> See [the PouchDB issue|https://github.com/pouchdb/pouchdb/pull/2254] for full details,
or here's a TLDR:
> 1. Run {{telnet localhost 5984}}
> 2. Paste in the following:
> {code}
> OPTIONS /my_database_name HTTP/1.1
> Host: localhost:5984
> Connection: keep-alive
> Access-Control-Request-Method: GET
> Origin: http://localhost:8000
> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/34.0.1847.137 Safari/537.36
> Access-Control-Request-Headers: accept, content-type
> Accept: */*
> Referer: http://localhost:8000/tests/test.html?grep=browser.worker.js%20create%20remote%20db
> Accept-Encoding: gzip,deflate,sdch
> Accept-Language: en-US,en;q=0.8
> {code}
> You'll correctly get back:
> {code}
> HTTP/1.1 204 No Content
> Server: CouchDB/1.5.0 (Erlang OTP/R16B03)
> Date: Mon, 19 May 2014 20:25:48 GMT
> Content-Length: 0
> Access-Control-Max-Age: 12345
> Access-Control-Allow-Origin: http://localhost:8000
> Access-Control-Allow-Methods: GET, PUT, POST, HEAD, DELETE
> Access-Control-Allow-Headers: accept, content-type
> Access-Control-Allow-Credentials: true
> {code}
> Now paste in:
> {code}
> OPTIONS /my_database_name HTTP/1.1
> Host: localhost:5984
> Connection: keep-alive
> Access-Control-Request-Method: GET
> Origin: http://localhost:8000
> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/34.0.1847.137 Safari/537.36
> Access-Control-Request-Headers: accept, referer, content-type
> Accept: */*
> Referer: http://localhost:8000/tests/test.html?grep=browser.worker.js%20create%20remote%20db
> Accept-Encoding: gzip,deflate,sdch
> Accept-Language: en-US,en;q=0.8
> {code}
> And you'll get:
> {code}
> HTTP/1.1 404 Object Not Found
> Server: CouchDB/1.5.0 (Erlang OTP/R16B03)
> Date: Mon, 19 May 2014 20:26:42 GMT
> Content-Type: text/plain; charset=utf-8
> Content-Length: 44
> Cache-Control: must-revalidate
> Access-Control-Expose-Headers: Content-Type, Server
> Access-Control-Allow-Origin: http://localhost:8000
> Access-Control-Allow-Credentials: true
> {"error":"not_found","reason":"no_db_file"}
> {code}
> This is unfortunate, because Chrome web workers seem to be sending the second value for
{{Access-Control-Request-Headers}} by default.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message