我试图在XPage应用程序中使用谷歌图表API。 我使用文档提供的代码示例:https://developers.google.com/chart/interactive/docs/php_example#exampleusingphphtml-file
我必须通过调用LS代理来替换对php页面的调用。
var jsonData = $.ajax({
url: "getData.php",
dataType: "json",
async: false
}).responseText;
所以我的代码转到:
var jsonData = $.ajax({
url: "http://server/database/agent?openagent",
dataType: "json",
async: false
}).responseText;
在我当地的多米诺骨牌服务器上,它运行正常。 在生产多米诺骨牌服务器上,我什么都没得到。未绘制图表。在调试js客户端之后,即使我以前必须登录,似乎ajax调用仍然需要进行身份验证。
两台服务器上都不允许匿名访问。 两种环境的安全级别似乎相同
如果我错了,欢迎任何帮助(或以其他任何方式继续)。
谢谢
答案 0 :(得分:0)
如果您能够在本地服务器中绘制谷歌图表,但不能在生产服务器中绘制,这意味着它是您的服务器问题。
您可以添加authentication header in your jquery ajax call以进行经过身份验证的ajax请求
$.ajax({
headers: {
"Authorization": "Bearer <TOKEN HERE>"
}
})
您还可以send username and password in jquery ajax call进行身份验证请求。以下是链接中的示例代码
$.ajax({
type: 'GET',
url: 'url',
dataType: 'json',
//whatever you need
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', make_base_auth(user, password));
},
success: function () {});
});
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = btoa(tok);
return 'Basic ' + hash;
}
答案 1 :(得分:0)
最后,我尝试通过dojo而不是Jquery运行ajax请求。 我的代码变成了这个:
var jsonData = dojo.xhrGet({
url: "http://server/database/agent?openagent",
handleAs:"json",
...
})
我没有在安全级别或其他任何方面进行任何更改。
我不明白为什么jquery语法不能正常运行dojo语法。
无论如何,它现在正在运作。
非常感谢所有人的建议