jQuery AJAX& POST请求后WCF异常失败

时间:2013-01-21 23:22:10

标签: ajax json wcf jquery

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

$.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]
在Firefox上

。 Safari和Chrome会抛出:

Error: NETWORK_ERR: XMLHttpRequest Exception 101

我正在使用VS2010和jQuery 1.7.xx

知道我做错了什么吗?任何建议都会非常感激。

1 个答案:

答案 0 :(得分:1)

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

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

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