如何在Adobe Acrobat动作执行JavaScript中执行curl并静默调用URL?
在Adobe Acrobat Pro中无跳转调用URL的解决方案
为什么现有方法不生效
exec('curl ...')失败:Acrobat的JavaScript运行在沙箱环境中,出于安全限制,无法直接调用系统级命令(如curl),因此这个方式从根本上不可行。this.submitForm()会打开新文件:该方法的设计初衷是提交表单并加载服务器返回的响应内容,因此默认会触发跳转或打开新文件的行为,不符合无跳转需求。
正确实现方式:使用Net.HTTP.request()
Acrobat内置的Net.HTTP.request()方法可以在后台发起HTTP请求,完全不会触发页面跳转或新文件打开,完美匹配你的需求。
示例代码(GET请求)
// 配置请求参数 var requestConfig = { cURL: "http://myurl.com", cMethod: "GET" }; // 发起后台请求 Net.HTTP.request({ oRequest: requestConfig, onSuccess: function(response) { // 可选:请求成功后的处理逻辑 console.println("请求成功,状态码:" + response.nStatusCode); }, onError: function(error) { // 可选:请求失败后的处理逻辑 console.println("请求失败:" + error.cErrorMsg); } });
POST请求示例(如果需要提交数据)
var requestConfig = { cURL: "http://myurl.com", cMethod: "POST", cBody: "key1=value1&key2=value2", // 表单格式数据 cContentType: "application/x-www-form-urlencoded" }; Net.HTTP.request({ oRequest: requestConfig, onSuccess: function(response) { console.println("POST请求成功"); }, onError: function(error) { console.println("POST请求失败:" + error.cErrorMsg); } });
注意事项
- 检查Acrobat安全设置:依次进入「编辑」>「首选项」>「JavaScript」>「网络访问」,确保已允许访问目标URL,或根据安全需求启用「允许所有网站」。
- 版本兼容性:该方法支持Acrobat Pro DC及较新版本,旧版本可能存在语法差异。
- 响应处理:
onSuccess和onError回调是可选的,若不需要可以省略,仅保留核心请求逻辑。
内容的提问来源于stack exchange,提问作者Ney LS
相关产品推荐
相关产品推荐

