Tibco Spotfire基本身份验证与跨域ajax调用

时间:2017-02-15 12:00:31

标签: ajax cross-domain basic-authentication spotfire

我正在使用跨域ajax调用Spotfire服务器创建客户端会话。对于身份验证我使用基本身份验证方法。当我通过Postman使用Authorization标头和值'Basic ' + btoa('user:password')发出请求时,它会发送正确的标头并开始新的会话,而在网络浏览器中则显示错误为

  

NetworkError:405方法不允许 -   http://server-path/GetJavaScriptApi.ashx?Version=8.0

&安培;

  

阻止跨源请求:同源策略禁止读取   远程资源在   http://server-path/GetJavaScriptApi.ashx?Version=8.0

     

(原因:缺少CORS标题'Access-Control-Allow-Origin'。

这是因为在跨域调用ajax调用OPTIONS请求后跟POST/GET,为了克服这个问题,我在我的ajax调用中创建了dataType: "jsonp"。现在GET调用正在运行,但现在给我一个新错误:

  

来自的资源   “http://server-path/GetJavaScriptApi.ashx?Version=8.0&callback=jQuery111107482621169238032_1487159470493&_=1487159470494”   由于MIME类型不匹配而被阻止(X-Content-Type-Options:   nosniff)。

Ajax代码如下:

$.ajax({  
    url: 'https://server-path/GetJavaScriptApi.ashx?Version=8.0', 
    type: 'GET',
    crossDomain: true,              
    beforeSend: function(xhr) {
      xhr.setRequestHeader("Authorization", Basic ' + btoa('user:password'));
      xhr.setRequestHeader("content-type", 'text/plain');
      xhr.setRequestHeader("X-Content-Type-Options", "nosniff");
    },
    dataType: "jsonp",
    success: function (jsonData) {
        console.log(jsonData);                  
    },
});

成功验证后,调用https://server-path/GetJavaScriptApi.ashx?Version=8.0返回javascipt作为响应

请帮忙解决..谢谢

0 个答案:

没有答案