0

我正在尝试在 asp.net 中使用 jQuery 调用 WCF 服务

WCF 服务和 asp.net 网站在同一个解决方案下,但是它们在不同的端口上运行,如下所示

 WCF - http://127.0.0.1:54443/Service1.svc/
 asp.net - http://127.0.0.1:57484/WebSite2/

下面是WCF函数代码

[WebInvoke(Method = "GET",RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json)]

        public List<string> getCurrentTime()
        {
            List<string> lstrSampleDate = new List<string>();
            lstrSampleDate.Add(DateTime.Now.TimeOfDay.ToString());
            return lstrSampleDate;
        }

下面是jQuery代码

 $.ajax({

                 type: "GET",
                 url: "http://127.0.0.1:54443/Service1.svc/getCurrentTime",
                 // crossDomain: true,
                 datatype: "json",
                 success: function (rVal) {
                     //console.log
                     alert(rVal);
                 },
                 error: function (xhr, status) {
                     //console.log
                     alert('Error: ' + xhr.statusText + 'Status: ' + xhr.status);
                 },
                 complete: function (xhr, status) {
                     //console.log
                     alert("The request is completed!");
                 }
             });

当我执行代码时,我在控制台中打印出以下错误

> XMLHttpRequest cannot load
> http://127.0.0.1:54443/Service1.svc/getCurrentTime. Origin
> http://127.0.0.1:57484 is not allowed by Access-Control-Allow-Origin.

作为一种解决方法,我确实将以下设置添加到配置文件(网站)

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
</httpProtocol>
</system.webServer>

并且仍然取得了丰硕的成果。谁能指出我失踪的地方?

注意:我已将 'localhost' 替换为 127.0.0.1 谢谢

4

1 回答 1

0

可能你会发现这篇文章有帮助:Access-Control-Allow-Origin error sent a jQuery Post to Google API's

我解决了 Access-Control-Allow-Origin 错误,将 dataType 参数修改为 dataType:'jsonp' 并添加了 crossDomain:true

于 2013-05-05T13:04:59.897 回答