2011-10-19 49 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所在的位置可以解决问题。

我不确定我将会遇到什么问题,一旦我准备将其推广到生产中。表面上我喜欢这种方法,因为它不会强制我修改我的代码来处理围绕跨域请求的奇怪现象。

对此的任何评论,非常感谢。谢谢