我正在尝试从$ .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
知道我做错了什么吗?任何建议都会非常感激。
答案 0 :(得分:1)
我已经找到了解决方案:我刚刚在WCF方法的开头添加了下一行:
WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*")
它就像一个魅力。谢谢大家!