WCF javascript代理跨域阻止访问数据库
因此,我只是按照本教程实现一个wcf服务: 总之:WCF javascript代理跨域阻止访问数据库,javascript,wcf,cors,Javascript,Wcf,Cors,因此,我只是按照本教程实现一个wcf服务: 总之: 我编写了一个WCF服务,并使其公开一个JS代理(如上面的教程所示) 我使用WCF测试客户端进行测试,它工作得非常好 我编写了一个虚拟html页面,并将其托管在另一个域上。然后,由于CORS,我无法访问该服务(尝试解决此问题,但未成功)。因此,我设法使用chrome和--disable web security标志来破解CORS问题(稍后我将尝试解决这个问题)。现在我可以访问该服务,它工作正常,但对于必须访问数据库的函数,它们只返回空结果 所以我
$.ajax({
url:'<ip address/site name>/wcfService.svc/method1',
contentType: "application/json; charset=UTF-8",
crossDomain: true,
dataType:'json',
data:{a:'<parameter value being sent>'}, //pass any parameter that are expected by the remote WCF service method(method1).
success:function(response) {
//Process the data(json/ normal data) retrieved from remote service.
}
});
$.ajax({
url:“/wcfService.svc/method1”,
contentType:“应用程序/json;字符集=UTF-8”,
跨域:是的,
数据类型:'json',
数据:{a:''},//传递远程WCF服务方法(method1)所需的任何参数。
成功:功能(响应){
//处理从远程服务检索的数据(json/普通数据)。
}
});
注意:在远程服务器端启用访问控制允许源站
选项,使其与CORS
兼容。最好的方法是在行为级别本身下配置,而不是在服务合同
或操作合同
级别。参考:blogs.microsoft.co.il/idof/2011/07/02/
快乐编码:)您需要做的是对远程WCF服务进行ajax调用。如果jQuery是您的一个选项,那么refere(这是进行ajax调用的一个简单选项):或者尝试使用原始javascript进行ajax调用,这将是一项有点繁琐的任务。我如何知道需要发送什么样的请求(比如参数是什么…)a已经通过ajax调用为call wcf服务添加了一个代码示例。有关更多信息,请参阅:我获得了请求取消状态,可能是由于CORS。仍然获得了取消状态,可能是因为我使用了错误的参数。例如,我的C#函数类似于这个字符串测试(字符串a)。什么是正确的参数?维克托:首先,你的url应该是正确的,例如,如果你试图访问
wcfService.svc
下的method1
,那么你的url应该是url:'/wcfService.svc/method1'
。其次,可以像下面这样传递参数:{a:'}传入消息具有意外的消息格式“Raw”。操作所需的消息格式为“Xml”、“Json”。这可能是因为尚未在绑定上配置WebContentTypeMapper。有关详细信息,请参阅WebContentTypeMapper的文档。“,“StackTrace”:在System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message Message,Object[]param…..@victor:您可能需要在服务器端启用访问控制允许源站
。请参考此站点并按照所述配置行为,它将在行为级别启用该属性,