我已经构建了一个 WCF Web 应用程序,将它的方法公开到启用的方法中
[OperationContract]
[WebGet]
string getStatistics();
[OperationContract]
[WebGet]
string getVenues(string BrandName, int limit);
并编辑了配置文件:
<endpoint address="json" binding="webHttpBinding" contract="foursquare2RDF.IVenue2rdf" behaviorConfiguration="restBehavior"/>
并在服务行为中:
<endpointBehaviors>
<behavior name="restBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
我在 IIS 上托管了该服务,它在浏览器上运行良好,所以当你点击时:
http://localhost:83/venue2rdf.svc/json/getStatistics
它返回了一个很好的结果
问题是如果显示这些错误,我无法使用这个宁静的服务:
OPTIONS http://localhost:83/venue2rdf.svc/json/getStatistics?{'venues':'100'} 405 (Method Not Allowed)
XMLHttpRequest cannot load [http://localhost:83/venue2rdf.svc/json/getStatistics][1]. Origin null is not allowed by Access-Control-Allow-Origin.
我正在使用该代码来调用服务:
$.ajax({
type: "get",
url: statisticsURL,
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
eval("var x = " + msg.d);
console.log(x);
}
});
到目前为止我达到了什么:
- 我尝试用 $.getjson 替换 $.ajax,就像在类似问题中所述,错误 405 被删除,第二个错误刚刚出现
- 我找到了一个名为 Ajax enabled WCF service project 的东西,但我仍然不想迁移到新项目中
- 我知道有类似的问题,但都不适合,显示我的不同错误