我有 2 个域,一个托管我的应用程序 - myapp,另一个托管 gooddata 仪表板 - analytics.myapp。我想将gooddata仪表板嵌入到我的应用程序的页面中。我已将frame-src设置为允许来自仪表板所在域的请求:
set $CSP "${CSP}; frame-src https://analytics.myapp.com/";
add_header Content-Security-Policy ${CSP};
Run Code Online (Sandbox Code Playgroud)
我还在CORS主机上设置了analytics.myapp允许来自myapp域的请求:
ingress:
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:10000, https://myapp.com"
Run Code Online (Sandbox Code Playgroud)
我想将包含来自域的内容的 iframe 嵌入到域的analytics.myapp页面中,只有在您通过身份验证后才能看到该内容myapp。现在,当我加载内容时,iframe 正在显示登录页面,如果我尝试通过 iframe 登录,则会收到错误消息:
Blocked autofocusing on a <input> element in a cross-origin subframe.
Run Code Online (Sandbox Code Playgroud)
如果我使用不同选项卡中的用户登录,analytics.myapp则无法正常工作,因为 cookie 不会发送到域myapp。我发现可以通过他们的文档中的 api 进行身份验证。他们还有关于如何嵌入仪表板的文档,但为了查看嵌入式仪表板文档说:
用户必须是工作区成员才能查看嵌入式仪表板。
我还没有实现 SSO(单点登录),但我想知道一旦实现它,CORS 还会有问题吗?我可以想象,一旦我实现了这个,来自myapp域的用户进入一个页面,其中我有一个带有嵌入式仪表板的 iframe analytics.myapp,他们将被重定向到一个身份验证端点,在该端点上myapp用户将通过 SSO 进行身份验证 …
iframe single-sign-on gooddata cross-origin-embedder-policy cross-origin-resource-policy
我已经做了一些搜索,大多数人似乎在发送大量数据时遇到这种情况,但我不是.
我正在向API发出以下请求:
request.Method = "POST";
request.ContentType = "application/json";
request.Accept = "application/json";
request.Headers.Add("Cookie", "$Version=0; GDCAuthTT=" + TToken + "; $Path=/gdc/account");
//generate request parameters
ReportRequest.RootObject reportRequest = new ReportRequest.RootObject();
reportRequest.report_req = new ReportRequest.ReportReq();
reportRequest.report_req.reportDefinition = ReportLink;
JavaScriptSerializer serializer = new JavaScriptSerializer();
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(serializer.Serialize(reportRequest));
request.ContentLength = byteArray.Length;
using (var writer = new System.IO.StreamWriter(request.GetRequestStream(), Encoding.UTF8, byteArray.Length))
{
writer.Write(byteArray);
}
Run Code Online (Sandbox Code Playgroud)
最后一个结束括号发生异常:
在写入所有字节之前无法关闭流.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.IO.IOException:在写入所有字节之前无法关闭流.
来源错误:
第176行:{第177行:
writer.Write(byteArray); 第178行:}第179行:
字符串responseContent; 第180行:使用(var response = request.GetResponse()as System.Net.HttpWebResponse)源文件:c:\ Users\james.billings\Documents\Visual Studio 2012\Projects\PhoneMonitor\PhoneMonitor\GoodData\DataRetriever.cs
Line:178堆栈跟踪:
[IOException:在写入所有字节之前无法关闭流.]
System.Net.ConnectStream.CloseInternal(Boolean internalCall,Boolean aborting)+604 …
我正在尝试使用GoodData API进行身份验证/登录,但我遇到了麻烦.在GoodData API文档站点(docs.gooddata.apiary.io)上,它说POST到:
网址:
头:
Run Code Online (Sandbox Code Playgroud)Accept: application/json Content-Type: application/json
JSON正文:
{ "postUserLogin":{ "登录": "user@company.com", "密码": "你的密码", "记忆":1}}
我收到响应"私有API,请提供私有哈希." 有任何想法吗?
我正在尝试通过api将在Cloud Connect中制作/编辑的图表上传到GoodData.我一直试图使用这个电话:http://docs.gooddata.apiary.io/#cloudconnectprocesses
我正在制作的实际电话有json {"process": {"path": "/uploads/Bonobos_v6-1.grf", "name": "Bonobos Prod"}}
但是,当我尝试运行它时,它失败了
{
"error": {
"errorClass": "com.gooddata.msf.processes.InvalidProcessException",
"trace": "",
"message": "Can not read from file \"/uploads/Bonobos_v6-1.grf\"",
"component": "MSF",
"errorId": "83090caa-31c9-4ce2-bb79-040d5c4d2421",
"errorCode": "gdc1151",
"parameters": []
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种特定的方法来创建一个需要上传到服务器的"流程"?我已经尝试了多个图形和单个.grf文件的zip文件,但无济于事.我也假设错误并不意味着GoodData看不到文件,但这肯定会解释一些事情.
gooddata ×4
.net ×1
api ×1
asp.net ×1
c# ×1
cross-origin-embedder-policy ×1
cross-origin-resource-policy ×1
etl ×1
iframe ×1