C# 如何在Java脚本中通过window.location.href访问从HttpWebRequest流发送的数据

C# 如何在Java脚本中通过window.location.href访问从HttpWebRequest流发送的数据,c#,javascript,ajax,web-services,C#,Javascript,Ajax,Web Services,我对网络编程比较陌生。 我有一个windows窗体,试图通过ajax和java脚本与web服务通信。 我的表格有以下代码 string sURL = <<URL>>; HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(sURL); //Modify request properties request.Method = "POST

我对网络编程比较陌生。 我有一个windows窗体,试图通过ajax和java脚本与web服务通信。 我的表格有以下代码

        string sURL = <<URL>>;
        HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(sURL);

        //Modify request properties
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.AllowAutoRedirect = false;
        request.AllowWriteStreamBuffering = false;

        string sRequestData = JsonConvert.SerializeObject(new GetSessionInfo() { UserName = "xxxxxx", Database = "xxxxxx", Module = "xxxxxx" }.ToString());

        StreamWriter sWriter = new StreamWriter(request.GetRequestStream());
        sWriter.Write(sRequestData);
        sWriter.Close();

        try
        {
            //Extract the response
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            if (response == null)
                return false;

            StreamReader responcestream = new StreamReader(response.GetResponseStream());
            string ResponseData = responcestream.ReadToEnd();
            responcestream.Close();
            return true;
        }
        catch
        {
            throw;
        }
目前,我能够通过浏览器硬编码参数来调用web服务方法。但是,当我尝试通过windows窗体执行此操作时,它总是返回我(405)方法,这是不允许的。 有人能帮我回答以下问题吗

  • 这能实现吗?如果是的话,你能提供一个实现 这个
  • 这是由于web服务设置问题造成的吗?如果是,你怎么办 我修好了吗
  • 有其他的方法吗?举个例子 很棒
我在.NET4.5上
非常感谢你的帮助

从你的问题中没有什么是清楚的。你说的是Windows窗体,但没有为其提供任何代码。很抱歉,上面的代码块是从Windows窗体中的按钮单击事件代码中提取出来的。完整代码太大、太混乱,无法放入。405只是表示POST/GET错误。如果服务是由您开发的,那么只需将web引用添加到WinForm应用程序中,并使用由add reference生成的代理类。谢谢您的回答,但在这种情况下,我们不能简单地添加web引用。Web服务是在.NET framework 4.5上开发的,而UI项目是在.NET framework 4.0上开发的。这就是为什么我们尝试远程访问表单的原因。如果您使用的是basicHttpBinding,那么即使该服务是在比您的客户端项目更高的版本中开发的,您也可以添加引用
        function Session()
        {   
            $.ajax({
                type: "POST",
                url: "/ProcessRequestFromEasyOrder",
                data : JSON.stringify({ user:"****", Database:"****", module:"****"}),
                contentType: "application/json; charset=utf-8",
                dataType: "application/json",
                async: true,
                cache: false,
                cors: true,
                success:function(data){
                    alert(data);
                }
            });
        }