2009-11-03 59 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請求。