3

我正在尝试从 $.ajax 查询将一些 JSON 发布到我的 WCF 服务。这是我的一组参数:

$.ajax(
{
 type: "POST",
 url: theurl,
 data: '{name:"Gabriel"}',
 dataType: "json",
 async:false,
 timeout: 5000,
 //success and error callbacks here...

WCF 方法契约如下所示:

[OperationContract]
        [WebInvoke(Method = "*", 
                   RequestFormat = WebMessageFormat.Json,
                   BodyStyle = WebMessageBodyStyle.Bare,
                   UriTemplate = "/Sample/POST")]
        string postSample(Stream jsondata);

WCF 在远程服务器上运行(在那里启用了跨域功能和 Access-Control-Allow-Origin)。当我使用 w3wp.exe 进行调试时,我看到 WCF 方法被命中,POST 正文是正确的,但是,在服务方法返回后,(一个简单的 JSON 或空字符串),我得到一个

[Exception... "Failure"...> :: line 4"  data: no]

在火狐上。Safari 和 Chrome 抛出:

Error: NETWORK_ERR: XMLHttpRequest Exception 101

我正在使用 VS2010 和 jQuery 1.7.xx

知道我做错了什么吗?任何建议将不胜感激。

4

1 回答 1

1

我已经找到了解决方案:我刚刚在 WCF 方法的开头添加了下一行:

WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*")

它就像一个魅力。谢谢大家!

于 2013-01-22T16:02:38.597 回答