【问题标题】:Rest API reqeust from jira using Vue Js and Query使用 Vue Js 和 Query 来自 jira 的 Rest API 请求
【发布时间】:2018-11-26 20:03:48
【问题描述】:

我一直在尝试通过 vue js 应用程序使用 JIRA rest API,在生成 API 密钥后,我使用 postman 运行 API 请求并且它运行良好。

首先我尝试使用 axios 客户端,但后来因为请求是“选项”而不是“获取”而被跨源卡住了。

那是代码:

axios.get(session_url, {
      headers: {'Authorization': + basicAuth }
    }).then(function(response) {
      console.log('Authenticated');
    }).catch(function(error) {
      console.log('Error on Authentication');
    });

然后我想尝试不同的解决方案并安装 jquery。使用此代码:

$.ajax({ 
        url: session_url,
        async: true,
        type:'GET',
        dataType: 'json',
        contentType: 'application/json',
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Authorization", "Basic "+btoa(auth));
        },
        success: function(json){
            alert('success');
        },
        error: function(err) {
          console.log(err);
        }
    });

但这也不起作用,我在使用 data type: 'json' 时发现请求是 OPTION 然后得到的跨源问题。当我使用“jsonp”时,请求会收到 400 响应,当我查看请求时,我看不到身份验证请求,因此我可以编辑请求并再次运行它,它正在工作。

我做错了什么?我该如何解决?

【问题讨论】:

    标签: javascript jquery ajax vue.js jira


    【解决方案1】:

    这是服务器端问题,而不是 vue-js/客户端问题:

    跨域错误意味着您的 vue 应用程序运行在与您的 jira 网络服务器不同的域(例如 example.org 和 jira.com)。在 jira-webserver 中你必须设置 "cross-origin: *"

    【讨论】:

    • 但我可以使用邮递员运行此请求并获得正确答案的 200。那么有什么区别呢?
    • 跨域是一种安全浏览器功能。在浏览器之外一切皆有可能......除了postman doesn't care about CORS
    • @AviyaOren 你会把我的答案标记为正确的还是有任何问题?
    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    相关资源
    最近更新 更多