TypeError:g.getResponseHeader未定义

时间:2016-03-15 17:55:05

标签: java http-headers cors alfresco alfresco-share

我有这段代码:

Connector conn = FrameworkUtil.getConnector(context, ALFRESCO_ENDPOINT_ID);
ConnectorContext c = new ConnectorContext(HttpMethod.POST);
c.setContentType("application/json");

Response res = conn.call("/slingshot/profile/userprofile", c,
                    new ByteArrayInputStream(buf.toString().getBytes()));

对帖子进行POST:POST http://localhost:8080/share/service/components/profile/userprofile

但是,我收到了错误:

  

TypeError:g.getResponseHeader未定义

     

... unction(g){var b = g.argument.config; var   F = g.getResponseHeader ["内容类型"] ||克....

在互联网上搜索时,我发现这可能是一个问题,解决了使用CORS添加Content-Type的问题。

类似的东西:

 .header("Access-Control-Allow-Headers", "x-requested-with,Content-Type");

如何在我的代码中执行此操作?使用Connector或ConnectorContext,我找不到设置标题的方法......

或者,如果这不是解决此问题的方法,我该如何解决此错误?

1 个答案:

答案 0 :(得分:2)

我认为你可能在这里配置了一些不正确的东西,或者你可能会误解一些事情。如果您正在与ALFRESCO_ENDPOINT_ID建立远程连接,那么这通常意味着您正在尝试连接到Alfresco存储库 - 并且根据您说你在哪里尝试从中进行呼叫看来这是在Share应用程序中运行的Java支持的WebScript中 - 这是正确的吗?

如果是这样,应该请求的URL实际上是:

http://localhost:8080/alfresco/service/slingshot/profile/userprofile

这相当于调用以下内容:

http://localhost:8080/share/proxy/alfresco/slingshot/profile/userprofile

(第二个URL自动代理Alfresco enpoint)。

如果Alfresco Repository和Share都在同一台服务器上运行(使用端口8080暗示你这么做)那么你就不应该遇到CORS问题 - 除非你试图去从localhost到运行Alfresco存储库的某个远程位置。

分享/冲浪应该为您照顾所有这些 - 也许您可以提供更多关于您正在尝试做什么的背景, 代码运行的位置(例如WebScript,Share等)以及您尝试连接的位置?

这可能有助于最好地建议如何解决您的主要问题。