WCF javascript代理跨域阻止访问数据库

WCF javascript代理跨域阻止访问数据库,javascript,wcf,cors,Javascript,Wcf,Cors,因此,我只是按照本教程实现一个wcf服务: 总之: 我编写了一个WCF服务,并使其公开一个JS代理(如上面的教程所示) 我使用WCF测试客户端进行测试,它工作得非常好 我编写了一个虚拟html页面,并将其托管在另一个域上。然后,由于CORS,我无法访问该服务(尝试解决此问题,但未成功)。因此,我设法使用chrome和--disable web security标志来破解CORS问题(稍后我将尝试解决这个问题)。现在我可以访问该服务,它工作正常,但对于必须访问数据库的函数,它们只返回空结果 所以我

因此,我只是按照本教程实现一个wcf服务:

总之:

  • 我编写了一个WCF服务,并使其公开一个JS代理(如上面的教程所示)
  • 我使用WCF测试客户端进行测试,它工作得非常好
  • 我编写了一个虚拟html页面,并将其托管在另一个域上。然后,由于CORS,我无法访问该服务(尝试解决此问题,但未成功)。因此,我设法使用chrome和--disable web security标志来破解CORS问题(稍后我将尝试解决这个问题)。现在我可以访问该服务,它工作正常,但对于必须访问数据库的函数,它们只返回空结果
  • 所以我的问题是:这是这种WCF服务(生成js代理向javascript客户端公开服务)的正常体系结构吗。我编写此WCF是为了向移动设备公开该服务。如果是,CORS是否阻止我从客户端javascript调用服务时访问数据库?

    试试这种方法

         $.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:您可能需要在服务器端启用
    访问控制允许源站
    。请参考此站点并按照所述配置行为,它将在行为级别启用该属性,