配置Domino解决CORS跨域问题

news2025/1/11 5:50:26

大家好,才是真的好。

前面我们讲过几篇Web应用开发的简单示例,主要功能是同一个站点的同一个应用里里面查看和搜索文档。如果对数据进行操作,可能多少会遇到网页跨域访问问题。

跨域,简单来说,就是浏览器对javascript施加的安全限制,不允许访问非同源的其他网站脚本。

不过,我们常常需要访问其他网站脚本,例如当前你的网页在请求A服务器上的网页资源,但又想使用ajax从B服务器上去读取一些数据,这就产生了跨域问题。

以上是最简单情况,其实连协议、端口不一样,都会产生跨域问题,下表展示了常见跨域的情况:
在这里插入图片描述
解决跨域问题通常有三种方式,一是JSONP,利用 script 标签 src 属性调用不同站点的JS资源,但只能get;二是nginx反向代理,这个就是统一了访问的站点、协议、端口等问题;三是CORS,它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

我们今天讲的就是Domino上实现CORS支持跨站资源访问。

不过,有不少前提条件,一是Domino本身要求,必须是10.0.1 FP2或以上版本;二是平台支持Windows,Linux和IBM AIX;三是浏览器要支持——当然,现在基本上所有浏览器都支持,除非你用的是IE10或之前的版本。

如果你确认满足以前条件,可以打开Domino服务器文档开始进行设置(本例中采用服务器文档,你也可以采用Internet站点文档进行设置):
在这里插入图片描述
在出现的Internet Protocols 选项卡下,找到HTTP选项卡,在DSAPI 区段下的DSAPI filter file names 字段下,设置值为ncorsext(如果是linux平台则应为corsext),如下图所示:
在这里插入图片描述
之后在Domino的数据目录下的domino文件夹中,手动新建一个文件夹叫做cors,在cors文件夹中新建一个文件cors-rules.json(不建议采用windows自带的记事本创建,否则会产生意外的问题),如下图:
在这里插入图片描述
接着,你可以按照下列案例填充该json文件:

   },

      "allowOrigins": [ "http://this.example.com", "http://that.example.com" ],

      "allowMethods": [ "GET", "POST", "PUT", "DELETE" ],

      "allowCredentials": true,

    }

  ]

}



{

  "version": "1.0",

  "rules": [

    {

      "resource": {

        "path": "/api/data/documents"

      },

      "allowOrigins": [ "http://this.example.com", "http://that.example.com" ],

      "allowMethods": [ "GET" ],

      "allowCredentials": true

    },

    {

      "resource": {

        "path": "/api/data"

      },

      "allowOrigins": [ "http://this.example.com", "http://that.example.com" ],

      "allowMethods": [ "GET", "POST", "PUT", "DELETE" ],

      "allowCredentials": true

    },

    {

      "resource": {

        "path": "/api/freebusy"

      },

      "allowOrigins": [ "http://this.example.com" ],

      "allowMethods": [ "GET" ]

    }

  ]

}


效果如下图所示:
在这里插入图片描述
当然,我们也可以给一些JSON内容解释:

version:版本,必需,且必须设置为“1.0”

rules :规则,定义 CORS 规则的 JSON 对象数组,每个规则都包含以下元素:

resource,资源:定义允许访问的外部请求URL。这是一个包含以下元素的对象:

    path:资源的相对路径(如果是 Domino 代理程序路径,可不带服务器名称 的URL)

    allowOrigins:这是一个字符串或字符串数组,用于定义可以调用已定义资源的主机

    allowMethods:这是一个字符串数组,其中包含此规则允许的方法。由于 LotusScript 端点只接受 GET 和 POST;您可以将规则限制为这两种方法。

allowCredentials:(可选)如果要允许客户端(网站)将凭据传递给服务器,请将此项设置为 true。

详细的解释可参考帮助文档,例如在线帮助:https://help.hcltechsw.com/domino/10.0.1/conf_cors_json.html

不过帮助文档里面的JSON示例有个小问题,多了一个逗号,读者们要小心此雷。

最后,在Domino服务器上先输入命令tell http quit,等待http任务结束后,输入命令load http,如下图:
在这里插入图片描述
当你见到信息HTTP Server: DSAPI CORS Filter Loaded successfully时,就可以确定你配置成功了。

内容很多,如果你看不懂,没关系,早点放弃,除开应用开发,毕竟Domino维护也是很重要的功能。

今天就讲到这里。更多精彩内容请关注微信公众号:协作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【知识图谱导论-浙大】第二章:知识图谱的表示

前文: 【知识图谱导论-浙大】第一章:知识图谱概论 本节内容的视频讲解如下: 【知识图谱理论】(浙大2022知识图谱课程)第二讲-知识图谱的表示什么是知识表示 简而言之,知识表示(Knowledge Rep…

【HTML】纯CSS居然能做出这种效果,一款宝藏网页分享(超详细讲解 | 附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

【ASP.NET】家乡网站设计作业「历史」「人文」「自然」「美食」「高中」

文章目录作业描述结果展示代码MasterPage.master(母版页)首页历史页人文页美食页景观页高中页完整资源链接上学期其中ASP.NET网站设计老师布置的作业,在此记录一下;作业描述 为自己的家乡设计一个网站: 要求: 1.网站主要是展示和…

TYPE-C和USB-C接口有什么区别?

USB-C接口全称为USB Type-C,属于USB 3.0下一代接口,其亮点在于更加纤薄的设计、更快的传输速度(最高可达10Gbps)、更强的电力传输(最高100W),此外USB-C接口还支持双面插入,正反面随便…

【NCC】之三:FFT(DFT)加速协方差的计算

FFT加速计算两个图的协方差文章目录<center> FFT加速计算两个图的协方差1. 傅里叶变换和卷积1.1 卷积定理1.2 空域卷积和频域乘积的复杂度2. opencv中的DFT3. FFT用于NCC4. 测试结果部分代码1. 傅里叶变换和卷积 1.1 卷积定理 图片来源 在空域上的卷积就是上面的动图所展…

再学C语言27:输入和输出——缓冲区

I/O函数&#xff1a;输入/输出函数 I/O函数将信息传输至程序并从程序中传出信息&#xff0c;如printf()、scanf()、getchar()、putchar()等函数 getchar()和putchar()每次输入/输出一个字符 示例代码&#xff1a; #include <stdio.h> int main(void) {char c;// 输入回…

Vivado综合设置之-resource_sharing

-​resource_sharing用于对算数运算&#xff08;加法、减法和乘法&#xff09;实现资源共享&#xff0c;以节约LUT资源&#xff0c;有3个值&#xff1a;auto、off和on&#xff0c;默认是auto。 默认情况下&#xff0c;将resource_sharing设置为auto即可。 本文验证-resource_…

[Leetcode] 将二叉搜索树变平衡

将二叉搜索树变平衡&#xff1a;https://leetcode.cn/problems/balance-a-binary-search-tree/给你一棵二叉搜索树&#xff0c;请你返回一棵 平衡后的二叉搜索树&#xff0c;新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法&#xff0c;请你返回任意一种。如果一…

Codeforces Round #842 (Div. 2)-C. Elemental Decompress

题目&#xff1a; 题目大意&#xff1a; 给定一个数列t&#xff0c;你构造两个数列a和b&#xff0c;使得max(a[i],b[i])t[i] 核心思想&#xff1a; 1、先根据给出的数组进行放置&#xff0c;优先放到a数组中&#xff0c;如果这个数已经在a数组中出现了&#xff0c;再去放到b数…

sentinel的使用

一、sentinel控制台的使用1、sentinel控制台jar包地址&#xff1a;Releases alibaba/Sentinel GitHub账号密码都为sentinel控制台访问地址&#xff1a;http://localhost:80802、sentinel的maven坐标<dependency><groupId>com.alibaba.cloud</groupId><a…

Android基础入门教程——2.2 LinearLayout(线性布局)

总结图片2. weight权重白色占总数量的2份&#xff0c;绿色占总数的1份。<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.co…

树莓派最新版系统烧写和网络配置

树莓派笔记1.树莓派烧写篇2.树莓派WIFI配置篇3.树莓派ping外网4.树莓派git篇5.参考1.树莓派烧写篇 目前烧写最新版本32位系统(2022-09-22发布的)&#xff0c;默认移除了pi用户&#xff0c;没有用户就无法SSH登录(无屏幕)&#xff0c;建议使用raspberry pi imager烧写工具&…

通过USB转TTL串口下载stm32程序

文章目录前言一、硬件及其接线二、使用步骤1.主芯片STM32F103C8T6开发板2.转串口模块接线3.CH340驱动及安装方法4.CH340驱动及安装方法4.下载测试5.0.91寸OLED 接口演示例程前言 前期我们下载程序都是使用STlink进行下载的&#xff0c;现在给大家提供一种新的程序下载方法&…

5G小基站国产化超五成,美国芯片仅占1%,难怪美国芯片难卖了

日前日媒拆解中国某科技企业的5G小基站&#xff0c;发现它的中国零部件占比达到55%&#xff0c;而来自美国的零部件占比仅为1%&#xff0c;显示出这家企业在去美化取得了重大进展&#xff0c;如此也就能理解为何如今美国芯片难卖了。日媒指出该科技企业的5G小基站国产化零部件占…

动态规划 完全背包问题

目录 LintCode 炼码完全背包问题 【解法一】 【解法二】 完全背包问题 【解法一】 解释&#xff1a; 第一个for循环表示从第一个物品开始遍历 第二个for循环表示逆向 从背包容量为m时开始处理&#xff08;滚动数组&#xff09; 第三个for循环表示装入k个该物品&#xff0c;装…

【前端】Vue项目:旅游App-(9)city:固定tab栏、内容中显示数据

文章目录目标过程与代码Tab一直显示的两种方法方法1&#xff1a;fixed定位方法2&#xff1a;设置height和overflow-y&#xff08;效果不好&#xff09;content显示数据效果总代码city.vue相关参考目标 上一篇获取了服务器中的数据&#xff1a;【前端】Vue项目&#xff1a;旅游…

【数据结构】完全二叉树——啊堆堆堆

一、树概念及结构树的概念树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n > 0&#xff09;个有限节点组成的一个具有层次关系的集合。把它叫做树是因为他看起来像是一颗倒挂起来的树&#xff0c;也就是说它是根朝上&#xff0c;而叶子朝下的。-> 有一个特殊的…

Find My产品|Ember发布支持苹果Find My温控马克杯

在 CES2023 展会上&#xff0c;温控马克杯制造商 Ember 表示&#xff0c;计划在 2023 年 Q2 上市一款支持苹果 Find My 应用的全新 Travel Mug 2 马克杯。 这项新功能将使用户能够在 Find My 应用中追踪 Travel Mug 2 的位置&#xff0c;就像追踪iPhone、iPad、AirPods 或其他…

埃科光电在科创板IPO过会:拟募资11亿元,董宁为实际控制人

近日&#xff0c;上海证券交易所披露的信息显示&#xff0c;合肥埃科光电科技股份有限公司&#xff08;下称“埃科光电”获得科创板上市委会议通过。据贝多财经了解&#xff0c;埃科光电于2022年6月22日在科创板提交招股书&#xff0c;并于12月29日递交招股书&#xff08;上会稿…

图像分割笔记

图像分割笔记 目标&#xff1a; 实现图像中多个物体的分割&#xff0c;多个物体的标注方式为0,1,2,3,0表示背景&#xff0c;1表示一种物体&#xff0c;2表示另一种物体&#xff0c;假设我们现在的分割任务里面有5个目标需要&#xff0c;如肺叶分割&#xff0c;5个肺叶的标注方…