Я знаю, что этот вопрос задавался много раз, но я не смог найти решения своей конкретной проблемы.
У меня есть веб-сервис WCF, использующий webHttpBinding, который я пытаюсь вызвать с веб-страницы с помощью вызова jquery $ .ajax ().
serviceFailed = function (a, b, c) {
alert('Failure: ' + c);
}
$.ajax({
type: "GET",
url: "http://localhost/KasraNet.Services.Centurian.WebService/CenturianAdmin.svc/bob",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
processdata: true,
error: serviceFailed,
success: function (msg) {
alert('Success: ' + msg);
}
});
При запуске выдается предупреждение об успешном завершении, но сообщение пустое.
Используя FireBug, я вижу, что ответ полностью пустой, а при использовании HttpFox возвращается ошибка NS_ERROR_DOM_BAD_URI. Я не вижу, как это связано с кросс-браузерной проблемой, так как я перехожу на localhost, и служба также работает на той же машине (я даже пытался изменить localhost на имя машины без успеха).
Служба определяется таким образом.
<OperationContract(), DataContractFormat()>
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped, Method:="GET", ResponseFormat:=WebMessageFormat.Json)> _
Function bob() As String
Заголовки запроса и ответа для вызова ajax:
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 (.NET CLR 3.5.30729)
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Origin: null
Server: Microsoft-IIS/5.1
Date: Fri, 13 May 2011 14:20:53 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Content-Length: 19
Cache-Control: private
Content-Type: application/json; charset=utf-8
Любая помощь будет принята с благодарностью - я действительно начинаю вырывать волосы!
EDIT:
Теперь интересно, если я вставлю URL в адресную строку браузера, начнется загрузка с результатами метода сервиса в формате json.
Спасибо
John