所以我有一个基本的WCF服务,直接使用jQuery/HTML,而不是asp.net。
我可以对我的测试调用GET。svc/测试通过浏览器,并得到我期望的JSON结果。 {" d ":["test1"、"test2","test3"]}
现在,我尝试使用jQuery 1.4.x
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: methodUrl,
data: {},
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: successCallback,
error: failedCallback
});
我正在抓取错误信息并将其转储到控制台,这是我的错误。日志:{"判别":4,"状态":0,"statusText":"错误"}日志:"错误"日志:{"message":"访问被拒绝。rn","description":"访问被拒绝。 r n"、"号码":-2147024891}
我读到我需要使用JSON-P和/或crossDomainScriptAccessEnabled或其他30个东西。
到目前为止,我还没有看到一个一致的解决方案。
如有任何帮助,不胜感激。
谢谢!Jon
所以不管怎样,这似乎是一个针对我们情况的hack。
我们正在使用MS Dynamics CRM 2011,它只允许使用JS的纯html页面,并且只支持IE。
我们最终运行了另一个WCF服务,它位于与CRM相同的盒子上(打破需求),它只是一个代理,反过来调用位于另一个盒子上的真正的WCF服务。
这是愚蠢的,增加了更多的维护开销,但我们至少能够继续生成JSON而不是JSON- p,以便其他消费者也可以使用它