2011-10-19 87 views
0

我想從JQuery發佈JSON數據到跨域WCF 4.0 REST服務,並且無法通過跨域方面。這裏是我的休息方法:jQuery跨域發佈到WCF 4.0 REST服務

[OperationContract] 
    [WebInvoke(Method = "*", 
     BodyStyle = WebMessageBodyStyle.Bare, 
     RequestFormat = WebMessageFormat.Json 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "Save")] 
    DataContract Save(DataContract dataContract); 

這裏是我的jQuery代碼:

$.ajax(
{ 
type: 'POST', 
url: url, 
data: JSON.stringify(data), 
dataType: 'json', 
contentType: 'application/json', 
success: function(data) 
{ 
    alert('success'); 
}, 
error:function (xhr, ajaxOptions, thrownError) 
{ 
    alert(xhr.status); 
    alert(thrownError); 
} }); 

我偶然發現this post但無法得到它的工作。請幫忙。

感謝

湯姆

回答

0

對於它的價值,在IIS 7中,我創建了一個「子應用程序」以我命名爲「休息」的網站,並指出我的WCF REST服務代碼住在哪兒(在我的情況下是C:\ inetpub \ wwwroot \ RestServices)。然後我在我的網站中更改了所有服務電話,以使用相同的域名,但將「\ Rest \」附加到URL。

URL網站: http://local.companyapp.com/

URL到REST服務: http://local.companyapp.com/Rest/ServiceLibrary/Save

之前,我試圖訪問: http://local.RestServices.com/ServiceLibrary/Save

它不工作,因爲它是一個不同的域(local.RestServices.com)它失敗了。將IIS更改爲名爲「Rest」的「子應用程序」指向我的Rest Services所在的位置可以解決問題。

我不確定我將會遇到什麼問題,一旦我準備將其推廣到生產中。表面上我喜歡這種方法,因爲它不會強制我修改我的代碼來處理圍繞跨域請求的奇怪現象。

對此的任何評論,非常感謝。謝謝