jquery - 从 jquery 到 Jenkins 工作的 Ajax 调用
问题描述
var milestone_name = uiscripts.context.milestone.name;
//AJAX block start
$.ajax({
url: "https://ctu-automation-server:8080/job/Check/build",
type: "GET"
});
//AJAX block end
上面的 ajax 调用来自远程服务器到其他服务器上的 Jenkins 作业。在运行脚本时,我得到以下响应:
GET https://ctu-automation-server:8080/job/Check/build 0 ()
我也尝试过 POST 操作。如果我使用 http,它表示内容必须通过 https 提供,这就是我用 https 替换 URL 的原因。
注意:Jenkins 作业允许匿名触发器,我可以在本地运行它。
0响应的原因是什么?还有其他想法吗?
解决方案
您可能会遇到 CORS 阻止您的请求;如果您在 FireFox 中尝试此操作,您将收到更有用的错误消息:
跨域请求被阻止:同源策略不允许在https://my.jenkins.example.com/job/jobName/build读取远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。
在浏览器中,出于安全原因,对其他网站的请求受到 CORS 的限制。请参阅https://enable-cors.org/。您可以尝试使用此 Jenkins 插件来允许来自您网站的请求https://wiki.jenkins.io/display/JENKINS/Cors+Filter+Plugin
推荐阅读
- c# - 如何将核心类库项目中的服务器路径获取到静态方法中
- java - 使用 JavaFX 时导致“无法找到或加载主类”的 JAR 文件
- javascript - 展平 JSON 数据
- android - 使用 cordova-plugin-media-capture 重新启动视频捕获回调的应用程序
- java - 分区相等子集和自顶向下 TLE
- java - 如何从同一实体的数组列表创建实体的不同实例
- c# - Unity3D Photon调用本地播放器断开前的方法
- javascript - 猫头鹰旋转木马全高给出空白页
- json - 将 xquery 结果存储为 json
- c# - 初始化数组时出现 StackOverflow 异常