0

我需要调用外部 API 从 SuiteScript 文件中获取一些数据,但我遇到了问题。GET 调用需要与凭据一起使用(基本上,它必须与请求标头中的 cookie 一起使用)。

如果我从 chrome 控制台设置withCredentials = true进行 API 调用,但是当我使用 NetSuite N/https 模块进行 API 调用时https.get()- 通过 - cookie 不会出现在请求标头上。

总而言之,我正在寻找一种方法来设置withCredentials = true呼叫http.get()或能够以某种方式从我的 SuiteScript 获取 cookie,以便我可以header在呼叫选项中手动设置它。

在此先感谢您的时间!

4

2 回答 2

2

在 get 中,传递 headers 选项并填充您的 header 值。我相信这些是KVP。

于 2018-03-05T21:08:05.380 回答
0

如果您的外部应用程序需要有关登录用户的信息,那么您可能想要做的是一个 XHR 请求(jQuery 的 $.getJSON 将是您最好的选择)。如果您需要将信息传递给服务器端脚本,那么您将使用返回的数据调用您的 Suitelet。

一个帖子示例如下。注意 withCredentials :

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: url,
            dataType: "json",
            data: jsonData,
            xhrFields: {
                withCredentials: true
            },
            success: function(response){
                console.log(response);
            },
            error: function(response){
                console.log('error: ' + JSON.stringify(response));
            }
        });
于 2018-03-05T23:46:09.427 回答