【发布时间】:2017-07-21 22:59:05
【问题描述】:
我正在尝试通过 javascript 调用服务并收到以下错误:
XMLHttpRequest 无法加载 http://www.somthing.com/something.svc。 对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin” 请求的资源上存在标头。 Origin 'http://www.somthing.com' 因此不允许访问。
我们也尝试过 jsonp ,但是不行!
我们尝试过如下设置cors证书,但没有任何乐趣
$.ajax({
type: 'GET',
headers: {"Access-Control-Allow-Origin: *"},
url: '//sharedservices.qa-worldventures.biz/MembershipService.svc/Subscriptions?source=DreamTrips&group=Perks&Locale=en-US',
dataType: "json",
contentType: "application/json",
success: onSuccessGetSubscriptionsId
});
你能进去吗?
【问题讨论】:
-
您需要阅读 HTTP 访问控制 (CORS),例如。在 MND 上:developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-
“我们尝试过如下设置 cors 证书,但没有任何乐趣” - 你还没有理解 CORS 是如何工作的。远程方是必须允许连接的一方。
-
但该服务正在与另一个网站合作,因此问题在于本地站点而不是远程站点
-
是的,该服务可能与另一个网站一起使用的原因是,在 CORS 配置中,您的服务肯定会指定来自某些 URL 的访问权限,/ 路径而不是“*”。
-
他们已经授予 * 访问权限,那么其他问题是什么?
标签: javascript c# ajax xmlhttprequest cors