Коллеги, никогда не программировал на javascript
 и ajax.
Сейчас изучаю эти технологии.
Есть задача послать запрос на сервер torrent transmission, но застопорилось все с пониманием как сформировать запрос.
Итак, есть сервер с url 
http://192.168.1.1:8181/transmission/rpc.
Я хочу отправить запрос для получения состояния торрентов.
JSON запроса выглядит так: 
{"method":"session-stats"}
Кроме того нужно передать идентификатор сессии вот такого вида: 
"X-Transmission-Session-Id: mnTDXReMBc3PkAa1flYVbHmoAVfq1UmNiFe6uW1aC9Q4TXD4"
Таким образом, я должен открыть сессию как то так:
var xhr = new XMLHttpRequest();
xhr.open('GET','http://192.168.1.65:8181/transmission/rpc', 'true', 'admin','password1');
xhr.send();
А как передать запрос и идентификатор  не понимаю.
Если не трудно помогите разобраться с принципом.
С уважением, Алексей.
PS. Я на bash написал работающий макет программы.
	
	| 
		 Код: 
	 | 
	#!/bin/bash
#-----------------------------------------------------------------------
#  Все запросы выполняются в две попытки
#  Если после первой попытки выдается <h1>409: Conflict</h1> ...
#  то из ответа считывается новый идентификатор сессии XTSID
#  и делается еще один запрос.
#  https://trac.transmissionbt.com/browser/trunk/extras/rpc-spec.txt#L48 
#  2.3.1.  CSRF Protection
#
DEBUG=0
HOST="192.168.1.65"
PORT="8181"
TRURL="http://$HOST:$PORT/transmission/rpc"
USER="admin"
PASSWORD="password1"
XTSID=""
#-------------------------------------
# Функция возвращает ID сессии
# 
function getSID ()
{
	local S="$1"
	S=${S##*X-Transmission-Session-Id: }
	S=${S%%</code>*}
	echo $S
}
#-------------------------------------
# Функция получения ответа от сервера transmission
#  параметр $1  - JSON запрос
function getData ()
{
	local REQUEST="$1"
	local RET=$(curl --silent -H "X-Transmission-Session-Id: $XTSID" \
		-H "Content-type: application/json" \
		-X POST \
		-d "$REQUEST" \
		--user $USER:$PASSWORD $TRURL)
	((DEBUG)) && echo $XTSID
	# проверяем на "409: Conflict"
	
	if [[ "$RET" =~ "409: Conflict" ]] 
	then
		XTSID=$(getSID "$RET")
		((DEBUG)) && echo "XTSID $XTSID"
		RET=$(curl --silent -H "X-Transmission-Session-Id: $XTSID" \
			-H "Content-type: application/json" \
			-X POST \
			-d "$REQUEST" \
			--user $USER:$PASSWORD $TRURL)
	fi
	echo $RET
}
#-------------------------------------
# Запрос общей статистики сесии с transmission
R='{"method":"session-stats"}'
RET=$(getData "$R")
echo $RET |