У меня есть удаленный сервер с привязкой webhttp, к которому я хотел бы получить доступ, используя javascript.
Ниже приведена простая функция javascript, которая выполняет функцию теста, которая является просто генератором случайных чисел, который возвращает это число.
Function DoTest()
{
var xmlHttp = new XMLHttpRequest();
var url = "location/to/service/service.svc/ajax/";
url = url + test;
var body = '{ }';
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/json");
xmlHttp.send(body);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4){
alert(xmlHttp.responseText);
}
}
}
Когда я выполняю эту функцию в ie9, я получаю {d: 6} или что-то еще, но когда я пытаюсь выполнить ту же функцию в chrome или firefox 5, это дает мне предупреждение без текста в нем.
когда я изменил xmlHttp.responseText на xmlHttp.responseXML, т.е. я получаю [Object], а в Firefox 5 и Chrome результат равен нулю.
Кто-нибудь знает, что я могу сделатьчтобы это работало во всех современных браузерах?
ОБНОВЛЕНИЕ: Chrome результатов Fiddler:
OPTIONS http://www.address.com/service.svc/ajax/add HTTP/1.1
Host: www.address.com
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30
Access-Control-Request-Headers: Content-Type
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
IE 9
POST http://www.address.com/service.svc/ajax/add HTTP/1.1
Accept: */*
Content-Type: application/json
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: www.address.com
Content-Length: 17
Connection: Keep-Alive
Pragma: no-cache
Cookie: ASP.NET_SessionId=m54ult1lvdqj0yeb3nm4dz4w
{"x":123,"y":332}
FF:
OPTIONS http://www.address.com/service.svc/ajax/add HTTP/1.1
Host: www.address.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:7.0a1) Gecko/20110617 Firefox/7.0a1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Pragma: no-cache
Cache-Control: no-cache