我正在尝试从不在我的域中的api获得响应。
$.ajax({
type: "GET",
url: "http://stage.developmentcheck.org/api/project_monitoring_detail",
data:{'project_id':'16'},
error: function (response) {
alert('Error: There was a problem processing your request, please refresh the browser and try again');
},
success: function (response) {
console.log(response);
}
});
所以错误说
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://stage.developmentcheck.org/api/project_monitoring_detail?project_id=16. This can be fixed by moving the resource to the same domain or enabling CORS.
到目前为止我只使用了html,但由于我使用ajax从api获取数据,请赐教我在哪里启用CORS以及如何启用?
我试过添加
Header set Access-Control-Allow-Origin "*"
在httpd.conf中但它没有用。
答案 0 :(得分:1)
你确实可以通过apache来实现。不要忘记双方都启用它(服务器 - 客户端)。检查开发人员工具的网络选项卡中的响应标题
服务器端:
要使用Apache将CORS授权添加到标头,只需添加即可
<Directory>
,<Location>
,<Files>
内的以下行 或者服务器配置的<VirtualHost>
部分(通常位于 * .conf文件,例如httpd.conf或apache.conf),或者在.htaccess文件中:
Header set Access-Control-Allow-Origin "*"
您是否已将其添加到<Directory>
,<Location>
,<Files>
或<VirtualHost>
内?你不能把它放在httpd.conf中。另一个选项是将其放在您想要的文件夹中的.htaccess
文件中(例如api文件夹)
jQuery示例:
$.ajax({
type: "GET",
url: "http://stage.developmentcheck.org/api/project_monitoring_detail",
data:{'project_id':'16'},
crossDomain: true,
error: function (response) {
alert('Error: There was a problem processing your request, please refresh the browser and try again');
},
success: function (response) {
console.log(response);
}
});
答案 1 :(得分:0)
你可以用PHP做到这一点。只需添加标题(“Access-Control-Allow-Origin:*”);在PHP脚本的开头。虽然如果您的PHP设置被某些严格的系统管理员等搞砸或控制,这将无效。