SuitescriptStruggling с исходящим вызовом API третьей стороне, которая использует CORS - PullRequest
0 голосов
/ 02 мая 2018

Я новичок в 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 ]

0 голосов
/ 02 мая 2018

Посмотрите примеры для модуля 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
    });
0 голосов
/ 02 мая 2018

Серверный JavaScript не сможет использовать ajax.

Вы указали, что вам нужно отправить файл, но ваш пример contentType - JSON. Если это просто JSON, вы можете использовать jQuery (не используйте $) для вызова ajax из браузера. Это будет сделано с помощью функции сохранения клиентского скрипта.

Если вам нужно отправить файл, вам потребуется создать сценарий SuiteScript и развертывание, которое запускается с помощью afterSubmit. Это позволит вам прочитать содержимое файла и опубликовать его.

...