jQuery跨域发布到WCF 4.0 REST服务

时间:2011-10-19 18:44:31

标签: jquery json cross-domain wcf-rest

我正在尝试将JSON数据从JQuery发布到跨域WCF 4.0 REST服务,并且无法通过跨域方面。这是我的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,却无法让它发挥作用。请帮忙。

由于

汤姆

1 个答案:

答案 0 :(得分:0)

为了它的价值,在IIS 7中,我创建了一个"子应用程序"到我的网站名为" Rest"并指出我的WCF Rest服务代码所在的位置(在我的例子中为C:\ inetpub \ wwwroot \ RestServices)。然后我在我的网站上更改了所有服务电话,以使用相同的域名但附加了" \ Rest \"到URL。

网站的网址: http://local.companyapp.com/

REST服务的URL: http://local.companyapp.com/Rest/ServiceLibrary/Save

之前,我试图访问: http://local.RestServices.com/ServiceLibrary/Save

它没有工作,因为它是一个不同的域(local.RestServices.com)它失败了。将IIS更改为具有"子应用程序"命名"休息"指向我的Rest Services所在的位置可以解决问题。

我不确定一旦我准备将其推广到制作中,我会遇到什么问题。从表面上看,我喜欢这种方法,因为它并没有强迫我修改我的代码来处理跨域请求的怪异。

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