在表单提交中使用jQuery AJAX 将数据发布到NetSuite Restlet

hwamh0ep  于 2023-03-29  发布在  jQuery
关注(0)|答案(1)|浏览(131)

我尝试使用jQuery AJAX 将表单数据发布到NetSuite restlet。使用下面的代码将数据发布到NetSuite restlet OAuth1.0。

jQuery(".form-button").click(function(){
   jQuery.ajax({
     url: "https://tstdXXXXXX.restlets.api.netsuite.com/app/site/hosting/restlet.nl? 
           script=XXXX&deploy=1",
     type: "POST",
     crossDomain: true,
     dataType: "jsonp",
     mode: 'cors',
     contentType: "application/json",
     beforeSend: function (xhr) {
     xhr.setRequestHeader("Authorization", "NLAuth nlauth_account=ACCOUNT#, 
     nlauth_email=EMAIL, nlauth_signature=XXXXXX, nlauth_role=ROLE#")
    }
    })
    .done(function(data){
    console.log(data);
    });
     });

在使用上述代码最初我得到错误“http://localhost:8080 '已被CORS策略阻止:No 'Access-Control-Allow-Origin' header is present”.为了解决这个问题,我添加了模式“cors”.现在我得到ERR_ABORTED 401.
先谢了

h43kikqp

h43kikqp1#

首先,您不能再使用旧的NLAuth身份验证方法,因为它不再受支持,必须使用基于令牌的身份验证。https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4623992425.html
其次,你有一个CORS问题,这不是NetSuite特有的问题。TLDR是CORS是浏览器强制执行的安全功能,要解决这个问题,你必须从服务器发送http请求。https://auth0.com/blog/cors-tutorial-a-guide-to-cross-origin-resource-sharing/
我不确定你打算如何部署你正在制作的这个网页,但通常情况下,你需要使用nodejs,php或python等运行时来托管网页并处理API请求。

相关问题