【发布时间】:2016-10-31 21:52:07
【问题描述】:
我一直在尝试从托管在另一个域上的网络服务获取信息。最初我只使用 ajax,但后来我意识到由于安全原因这不起作用。后来我了解到我可以使用 CORS 来解决这个问题,问题是我没有让它工作。有什么建议吗?
javascript:
$.ajax({
type: "POST",
url: "http://localhost:34887//Login",
data: '{"username":"Administrator","password":""}',
dataType: "json",
success: function(data) {
alert(data[1]);
},
error: function(data){
alert("fail");
}
});
带有CORS的php代码:
header('Access-Control-Allow-Origin: http://localhost:34887/');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
我得到的错误:
XMLHttpRequest 无法加载 http://localhost:34887/Login。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:5050' 不允许访问。响应的 HTTP 状态代码为 500。
这与我在不使用 CORS 时遇到的错误相同。 (欢迎在线提供 CORS 示例)
【问题讨论】:
-
站点 A 想要调用站点 B 上的 Web 服务。站点 B 需要设置这些访问控制标头以允许站点 A 调用该服务。这就是你在测试中所做的吗?
-
您的
Access-Control-Allow-Origin标头列出了您调用的端点的来源。它应该列出进行调用的页面的来源。 -
我还不太了解 CORS,我有一个从 web 服务请求的站点,这个 web 服务能够在我的 sql server 中发布所有数据,现在我正在尝试访问和编辑这个来自我的 localhost:5050 的数据,所以我将 CORS 放在 localhost:5050 上的站点的 php 中
标签: javascript php jquery json ajax