我正在尝试在 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 谢谢