Angularjs 否';访问控制允许原点';有角度的收割台
我使用RESTAPI调用来查询JIRA服务器中所有未解决的问题。以下是查询:Angularjs 否';访问控制允许原点';有角度的收割台,angularjs,rest,google-chrome,jira-rest-api,Angularjs,Rest,Google Chrome,Jira Rest Api,我使用RESTAPI调用来查询JIRA服务器中所有未解决的问题。以下是查询: https://jiraserver/rest/api/2/search?jql=project IN ("Project Name") AND status IN (open) 当我在Google Chrome advanced REST client中传递查询时,我能够得到JSON响应,但当我在Angular.js中的HTTP调用中给出此响应时,它返回: 没有“访问控制允许来源”标题错误 我是Angular.j
https://jiraserver/rest/api/2/search?jql=project IN ("Project Name") AND status IN (open)
当我在Google Chrome advanced REST client中传递查询时,我能够得到JSON响应,但当我在Angular.js中的HTTP调用中给出此响应时,它返回:
没有“访问控制允许来源”标题错误
我是Angular.js新手,无法识别出哪里出了问题。有人能帮我吗?访问控制允许来源
当服务器配置为不共享跨域请求的数据时,就会出现这种情况
当我在GoogleChromeAdvancedRESTClient中传递查询时,我能够得到一个json响应
是的,所有rest客户端都可以访问数据,因为它们被允许这样做,但是对于ajax
,您应该启用CORS
跨域共享数据
另一种方法是创建代理
我们可以做的是,在服务器上创建一个代理,该代理可以依次调用另一个url并获取数据并发送。您可以这样做:
<?php
// suppose this page as "proxy.php"
header('Content-Type: application/json');
$jsonData = json_decode(file_get_contents('https://jiraserver/rest/api/2/search?jql=project'));
echo $jsonData;
?>
由于JIRA 6.0,您可以为配置白名单,请参阅: 自JIRA服务器的JIRA 6.0以来,JIRA REST API就支持CORS。如果您是JIRA服务器客户,只需转到JIRA管理的“白名单”部分,添加您希望从中请求资源的域注意:您必须具有系统管理员全局权限才能访问JIRA管理的此部分 不幸的是,出于安全原因,此域白名单在JIRA云中不可用。我们目前正在探索替代方法,允许某些请求不会将JIRA暴露于攻击向量。一旦我们有更多信息,我会尽快更新这个问题
另请参见:我在apache tomcat服务器上本地托管了一个html/angular应用程序。我试图通过http调用访问RESTAPI。我在tomcat web.xml CorsFilter org.apache.catalina.filters.CorsFilter CorsFilter/*中执行了以下操作,但同样的错误再次出现
$http({
method: 'POST',
url: '/proxy.php'
}).then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log(response);
});