我已使用以下脚本访问我的basecamp项目详细信息,但仍返回以下错误:
XMLHttpRequest无法加载
https://********.basecamphq.com/projects.xml。应对飞行前
请求未通过访问控制检查:否
请求中存在“ Access-Control-Allow-Origin”标头
资源。因此,不允许来源“ https://******.****.com”
访问。响应的HTTP状态码为405。
$.ajax({
type: 'GET',
url: 'https://xxxxxxxxx.basecamphq.com/projects.xml',
dataType: 'json',
headers: {
"Access-Control-Allow-Origin": "*",
"Authorization":"Basic *********************",
"Accept":"application/json",
"Content-Type": "application/json",
"charset":"=utf-8"
},
error: function (request, textStatus, errorThrown) {
alert('e');
},
success: function () {alert('s');}
});
所以我想知道是否可以使用javascript ajax调用来访问basecamp项目,如果有的话,请添加一些示例代码。
最佳答案
您在这里遇到的是CORS问题。
您正在ajax请求本身上设置"Access-Control-Allow-Origin": "*"
,但是该标头需要在服务器端设置(因此在basecamp端设置)。您不能强制服务器从客户端请求中启用CORS。
如果您无权在Basecamp端启用CORS,那么您将必须通过代理(即,建立与basecamp起源相同的代理,在其上启用CORS,然后进行直接向代理发送ajax请求)。
关于javascript - 使用Ajax调用javascript访问Basecamp项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34173865/