Невозможно пройти аутентификацию в CouchDB из jQuery

0

Я запускаю экземпляр CouchDB, и я пытаюсь использовать аутентификацию cookie для подключения из приложения Ember.

В командной строке я могу успешно выполнить аутентификацию, используя:

curl -vX POST $HOST/_session -H 'Content-Type: application/json' -d '{ "name": "will", "password": "secret" }'

Это генерирует следующий запрос:

POST /_session HTTP/1.1
User-Agent: curl/7.32.0
Host: 127.0.0.1:5984
Accept: */*
Content-Type: application/json
Content-Length: 40

Мой javascript для той же операции:

$.ajax( {
  type: 'POST',
  url: "%@/_session".fmt( App.Host ),
  data: JSON.stringify( { user: $('#username').val(), password: $('#password').val() } ),
  dataType: 'json',
  contentType: 'application/json'
} )

Это создает соответствующий запрос:

Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Connection:keep-alive
Content-Length:35
Content-Type:application/json
Host:localhost:5984
Origin:http://localhost
Referer:http://localhost/~will/howlin-wolf/www/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36

Ответ, хотя и 401, несанкционирован.

Я получаю тот же результат, используя x-www-form-urlencoded информацию. Запрос на завивание работает:

curl -vX POST $HOST/_session -d 'name=will&password=secret'

В jQuery нет:

$.ajax( {
  type: 'POST',
  url: "%@/_session".fmt( App.Host ),
  data: "user=%@&password=%@".fmt( $('#username').val(), $('#password').val() )
} )
Теги:
couchdb
http-authentication

1 ответ

0

Я использовал user в запросах jQuery, когда это должно было быть name.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню