我正在使用JIRA的API来获取有关错误的一些信息。这是我用来获取它的JQuery的一个例子:
var endpoint = 'https://jira.cyanogenmod.org/rest/api/latest/issue/CYAN-2631';
$.get(endpoint, function(data) {
do_stuff(data, data['fields']['project']['self']);
});
而且,我遇到了一个非常糟糕的Access-Control-Allow-Origin
错误。它看起来像这样:
XMLHttpRequest cannot load
https://jira.cyanogenmod.org/rest/api/latest/issue/CYAN-2631.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://127.0.0.1:8000' is therefore not allowed access.
如果可能的话,我真的很想使用这个API。按照此question的说明没有帮助。我又得到了一个错误,
GET https://jira.cyanogenmod.org/rest/api/latest/issue/CYAN-2631callback=jQuery172039181585889309645_1431307158851?_=1431307165515
似乎是一个Jquery错误,所以我认为这不是正确的方法。也许服务器不允许jsonp
。
无论如何,有没有人解决这个问题,或者我可以不使用这个特定的API?感谢
答案 0 :(得分:2)
没有外部代码,无法完全从浏览器启用跨源请求。如果有的话,它首先会完全违背安全保护的目的。
使用浏览器时,服务器决定是否支持跨源请求以及它希望支持哪些域请求。你无法在客户端中绕过它。
选择是:
仅供参考,谷歌搜索出现了关于在API上启用CORS的文章:https://answers.atlassian.com/questions/69356/cross-origin-resource-sharing-with-jira-rest-api-and-javascript。我不太了解该服务以完全遵循这篇文章,但也许它指出了一个有用的方向。