为了账号安全,请及时绑定邮箱和手机立即绑定

Suitescript努力解决对使用CORS的第三方的出站API调用

Suitescript努力解决对使用CORS的第三方的出站API调用

C#
繁花不似锦 2021-05-17 12:21:01
我是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)  {  }});如果任何人有任何建议或参考,可以帮助我摆脱这一障碍,将不胜感激!
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

查看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

    });


查看完整回答
反对 回复 2021-05-23
?
慕沐林林

TA贡献2016条经验 获得超9个赞

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

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

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


查看完整回答
反对 回复 2021-05-23
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信