【发布时间】:2017-06-12 22:54:06
【问题描述】:
在 ajax 调用时收到此错误
WebSocket 错误:SECURITY_ERR,不允许跨区域连接
还返回了 500 错误代码。 在进一步测试后,我能够得到其他似乎与错误无关的响应。请参阅下面的报告错误的位置。
来自这个 Angular 调用
$http.post("Status.aspx/GetDataAsync", {})
.then(function(response){ $scope.theData = data;},
function(response){ $scope.result = "Error!";}
);
当试图调用WebMethod 后面的页面代码时,这很明显也会对其他网络服务进行网络服务调用。
[System.Web.Services.WebMethod]
public static async Task<string> GetDataAsync()
{
var httpresult = await (new HttpClient()).GetAsync("{Internal site rest service Url}");
return await httpresult.Content.ReadAsStringAsync();
}
这让我想起了一个旧的 Silverlight 跨域问题调用......但我离题了。
问题 区域问题可以解决还是必须直接调用休息服务?
尝试在方法级别使用CORS(参见Enabling Cross-Origin Requests (CORS)),例如
[System.Web.Services.WebMethod]
[EnableCors("AllowAllOrigins", "AllowHeaders", "AllowAllMethods")]
运气不好。
错误
这是在 Edge(和 IE)上的 F12 工具中发现错误的地方。 Chrome 未报告此问题。
【问题讨论】:
标签: asp.net angularjs rest webmethod