2009-11-03 4 views
1

Я написал очень простой сервис обслуживания wcf, который, кажется, работает нормально, когда я делаю запросы к нему через скрипач, но я не могу заставить его работать при вызове его из JQuery.Вызов службы wcf rest из jquery не работает

Услуги:

[ServiceContract] 
public interface IService1 
{ 
    [OperationContract] 
    [WebInvoke(Method = "POST", 
       UriTemplate = "customers/{regionId}", 
       ResponseFormat = WebMessageFormat.Json 
    )] 
    Customer[] GetCustomers(String regionId); 
} 

[DataContract] 
public class Customer 
{ 
    [DataMember] 
    public Guid Id { get; private set; } 

    [DataMember] 
    public String Name { get; private set; } 

    public Customer(Guid id, String name) 
    { 
     Id = id; 
     Name = name; 
    } 
} 

public class Service1 : IService1 
{   
    public Customer[] GetCustomers(String regionId) 
    { 
     return new[] 
       { 
        new Customer(Guid.NewGuid(), "john"), 
        new Customer(Guid.NewGuid(), "pete"), 
        new Customer(Guid.NewGuid(), "ralph")      
       }; 
    } 
} 

Я могу делать запросы к этой услуге через стельку и возвращает ожидаемый JSON. Однако, когда я пытаюсь вызвать его с помощью JQuery ajax через консоль firebug, он всегда терпит неудачу. Вот вызов:

$ .ajax ({ тип: "POST", данные: "{}", URL: "http://127.0.0.1:8081/json/customers/1", CONTENTTYPE: "приложения/JSON; кодировка = UTF-8" , DATATYPE: "JSON", успех: функция (разрешение) {
оповещения ('успех'); }, ошибка: функция (XHR) { оповещения ('не удалось:' + xhr.responseText) ; } });

Я всегда получаю сообщение об ошибке, и текст ответа всегда пуст. Любые идеи очень приветствуются.

ответ

0

Когда вы говорите «через Fiddler», вы имеете в виду «использование построителя запросов Fiddler» или вы имеете в виду «с запуском Fiddler»?

Вопрос: На каком URL-адресе работает ваш сайт? Обычно вы не можете делать запросы XHR на разные серверы (или порты в FF) с помощью XHR.

Смежные вопросы