从 AJAx 向 WCF Webservice 链接发送数据

Posted

技术标签:

【中文标题】从 AJAx 向 WCF Webservice 链接发送数据【英文标题】:Sends Data to WCF Webservice link from AJAx 【发布时间】:2017-01-28 05:35:41 【问题描述】:

希望将数据从 Ajax 发送到包含方法 GetQuickQuote(string x) 并从 Web 服务返回数据的 Wcf 服务。

jQuery

 $('#txtBox').blur(function () 
        debugger;
        $.ajax(
            type: "POST",
            url: "http://logicalfire-pc:8090/Libertytest.Service1.svc" + "/GetQuickQuote", 
            crossDomain: true,
            data: JSON.stringify( x: 'ght'),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) 
                if (response.d == true) 

                    alert("You will now be redirected.");
                

            ,
            error:function(eror)
            
                alert('failure');
            

        )
    );

WCF 服务包含

public string GetQuickQuote(string x)
        
            var ReadXmlPath = GetApplicationPath() + "TextFile1.txt";
x=ReadXmlPath;
    return x;


       

我得到以下回应:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://logicalfire-pc:8090/Libertytest.Service1.svc/GetQuickQuote. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

【问题讨论】:

【参考方案1】:

在您的global.asax webservice 文件中添加以下代码

protected void Application_BeginRequest(object sender, EventArgs e)

   HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
   if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
   
      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
      HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
      HttpContext.Current.Response.End();
   

【讨论】:

以上是关于从 AJAx 向 WCF Webservice 链接发送数据的主要内容,如果未能解决你的问题,请参考以下文章

从 jquery 向 wcf webservice 发送数据

Ajax POST 到 WCF Rest CORS 兼容的 WebService 引发错误 405

ajax内调用WCF服务

Ajax 到 WCF 服务

从 iOS 目标调用方法 webService (WCF) C)

从 JavaScript 访问 WCF WebService - 对预检请求的响应未通过访问控制检查