2009-11-03 73 views
1

我写了一个非常简单的wcf rest服务,当我通过fiddler向服务器发出请求时似乎工作正常,但从JQuery调用它时无法使其工作。从jquery调用wcf rest服务不起作用

服务:

[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。但是,当我尝试通过Firebug控制台用JQuery ajax调用它时,它总是失败。这里是呼叫:

$就({ 类型: “POST”, 数据: “{}”, URL: “http://127.0.0.1:8081/json/customers/1”, 的contentType: “应用程序/ JSON;字符集= UTF-8” , 数据类型: “JSON”, 成功:功能(RES) {
警报( '成功');} , 错误:功能(XHR) { 警报( '失败:' + xhr.responseText) ; } });

我总是收到失败的警报,并且responseText始终为空。任何想法将不胜感激。

回答

0

当你说“通过提琴手”你的意思是“使用提琴手的请求建设者”或你的意思是“与提琴手跑?”

问题:您的网站上运行什么URL?通常不能使用XHR向不同的服务器(或FF中的端口)发出XHR请求。