繁体   English   中英

Suitescript与使用CORS的第三方的出站API调用苦苦挣扎

[英]SuitescriptStruggling with outbound API call to 3rd party that uses CORS

我是Suitescript的新手,并且正在为我的公司从事Netsuite的定制项目。 我想知道是否有人可能有任何参考或特定的代码示例,可以帮助我解决自己遇到的困难。我试图集成DLS World Ship,以便我们能够发送流程装运文件,而不必将信息复制/粘贴到他们的船舶软件中。

不幸的是,API调用必须在后端代码中完成,因为当它从JAVASCRIPT发送时,出现cors错误。

这是我的JS出站API调用:

var RateRequestViewModel = {
};

var jsonURL ="https://dlsworldwideproxy-dev.rrd.co...op/RateRequest";

$.ajax({
  type:"POST",
  data:JSON.stringify(RateRequestViewModel),
  contentType:"application/json",
  url:jsonURL,
  beforeSend: function (request) {
    request.setRequestHeader("UserName", "Example Company Inc.");
    request.setRequestHeader('ApiKey',"insertAPIkeyher e"); 
  },
  success:function(data)
  {
  }
});

如果任何人有任何建议或参考,可以帮助我摆脱这一障碍,将不胜感激!

查看N / https模块的示例。 您可以使用它轻松进行所需的服务器端调用。 实际上,我相信如果您使用此模块客户端,则该请求将通过Netsuite代理,因此CORS也不是问题。

简短地,您的代码将类似于:

var headers = {
    "content-type" : 'application/json',
    "accept": 'application/json'
};

var response =  http.post({url:jsonURL, headers:headers, body:JSON.stringify(payload)}); // synchronous

或客户端:

http.post.promise({url:jsonURL, headers:headers, body:JSON.stringify(payload)}).
    then(function(response){
        //handle the response
    });

服务器端javascript将无法使用ajax。

您声明需要发送文件,但是示例contentType是JSON。 如果只是JSON,则可以使用jQuery(不要使用$)从浏览器进行ajax调用。 这将在客户端脚本的保存功能上完成。

如果需要发送文件,则需要创建一个SuiteScript脚本并通过afterSubmit触发部署。 这将允许您读取文件内容并将其发布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM