当前位置: 首页 > 知识库问答 >
问题:

如何解决户外sdk中户外webscript中的CORS错误?

朱毅
2023-03-14

我创建了一个露天网络脚本,可以使用这样的网址访问:

http://localhost:9191/alfresco/s/search/item/{ item iid }例如:http://localhost:9191/alfresco/s/search/item/it 0001

当我直接从浏览器地址栏点击时,它工作得很好,但是当我从我的角度服务调用它时,我得到了CORS错误

未能加载http://localhost:9191/alfresco/s/search/item/it 0001:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“http://localhost:4201”。

我的棱角部分是这样的:

convert1(itemId:string){
    var headers = new Headers();
    headers.set('Content-Type','*');
    headers.set('Access-Control-Allow-Origin','*');
    headers.append('Authorization','Basic zfsdfsdfsdfdsf=');    
    return  this.http.get(http://localhost:9191/alfresco/s/search/item/it0001,{headers:headers});   
}

在露天回购方面,我在webscript代码中添加了以下内容,但这没有帮助。

response.setHeader("Access-Control-Allow-Origin", "*"); 

我可以在我的露天回购放大器插件中做什么更改,以便避免此错误。

任何见解都将受到高度赞赏。

——杰夫·波茨回答之后——

1. D:\abcd-app-repo\target\amp-war\WEB-INF\web.xml
<!-- CORS Filter Begin -->
  <filter>
      <filter-name>CORS</filter-name>
      <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
      <init-param>
         <param-name>cors.allowGenericHttpRequests</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.allowOrigin</param-name>
         <param-value>*</param-value>
      </init-param>
      <init-param>
         <param-name>cors.allowSubdomains</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportedMethods</param-name>
         <param-value>GET, HEAD, POST, PUT, DELETE, OPTIONS</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportedHeaders</param-name>
         <param-value>origin, authorization, x-file-size, x-file-name, content-type, accept, x-file-type</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportsCredentials</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.maxAge</param-name>
         <param-value>3600</param-value>
      </init-param>
   </filter>
   <!-- CORS Filter End -->

   <!-- Enterprise filter placeholder -->

   <filter-mapping>
      <filter-name>Global Localization Filter</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>
   </filter-mapping>

   <!-- CORS Filter Mappings Begin -->
  <filter-mapping>
      <filter-name>CORS</filter-name>
      <url-pattern>/api/*</url-pattern>
      <url-pattern>/service/*</url-pattern>
      <url-pattern>/s/*</url-pattern>
      <url-pattern>/cmisbrowser/*</url-pattern>
   </filter-mapping>
   <!-- CORS Filter Mappings End -->

共有1个答案

姜俊逸
2023-03-14

尝试以下步骤:

  1. 进入WEB-INF下扩展的alfresco webapp目录并编辑WEB.xml
  2. 搜索“CORS过滤器”
  3. 取消对过滤器的注释
  4. 现在重新启动Tomcat并重试
 类似资料:
  • 我想从我的子域(文件托管服务器)获取json,但它得到以下错误: 原因:CORS请求未成功) (原因:缺少CORS头访问控制允许起源 我的类似代码: 我补充说 但不工作。 我补充说 若要编码,请获取文件,但返回响应状态0,模式:“不透明”。 请帮帮我。

  • 我最近开始和Kotlin一起学习,并开始了一个使用Kotlin的Spring靴宠物项目。 我试图将一个自定义用户域对象集成到Spring Security中,因此希望实现UserDetails接口。 > 意外重写:以下声明具有相同的JVM签名(getUsername()ljava/lang/string;):public final fun ():kotlin.string,public abst

  • 当我打开XAMPP并点击启动MySQL按钮,它给我一个错误。我刚刚开始,但现在它不起作用。 下午12:19:12[mysql]正在尝试启动mysql应用程序 12:19:12 PM[mysql]检测到状态更改:正在运行 12:19:13 PM[mysql]检测到状态更改:已停止 12:19:13 PM[mysql]错误:mysql意外关闭 12:19:13 PM[mysql]这可能是由于端口被阻止

  • 我刚刚重新安装了XAMPP,当我尝试在XAMPP控制面板中启动Apache服务器时,现在出现以下错误: 我该怎么解决这个问题?

  • 如何从Visual Studio读取此错误消息?到底缺少什么线索?这是一个复杂的项目,猜测是一种相当无效的方法——我更愿意确切地知道要寻找什么。 1. 1. 1. 完整的错误列表在这里https://gist.github.com/anonymous/91a76564651be4ac43fc