我已使用以下脚本访问我的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/

10-11 13:11