Я использую следующий код для получения некоторых данных JSON:
var request = new Request.JSON(
{
'url': sourceURI,
'onSuccess': onPageData
}
);
request.get();
Request.JSON - это класс из Mootools (библиотека javascript).
Но в Linux (Ubuntu на Firefox 3.5 и Chrome) запрос всегда терпит неудачу. Поэтому я попытался отобразить http-запрос, который отправляет ajax.
(Я использовал netcat, чтобы отобразить его)
Запрос выглядит так:
OPTIONS /the+url HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.226.0 Safari/532.3
Referer: http://example.com/ref...
Access-Control-Request-Method: GET
Origin: http://example.com
Access-Control-Request-Headers: X-Request, X-Requested-With, Accept
Accept: */*
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
HTTP-запрос (первая строка) не такой, каким он должен быть:
OPTIONS /the+url HTTP/1.1
Это должно быть:
GET /the+url HTTP/1.1
Кто-нибудь знает, почему эта проблема и как ее исправить?
Edit:
Ajax-запрос получает следующий результат от моего сервера Apache:
HTTP/1.1 200 OK
Date: Fri, 23 Apr 2010 08:09:41 GMT
Server: Apache/2.2.15 (Debian)
Allow: GET,HEAD,POST,OPTIONS
Content-Length: 0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/plain
Длина содержимого не должна быть нулевой. Но я думаю, что модуль Request.JSON теперь может видеть, что запрос GET доступен и может его использовать?