AJAX 调用不会发送数据

AJAX call won't send data

本文关键字:数据 调用 AJAX      更新时间:2023-09-26

我知道已经有很多问题了,但这些问题似乎都不起作用。我正在尝试将数据从表单发送到NetSuite上的suitelet,但它甚至不发送数据。有人看到我哪里出错了吗?

我一直在控制台中将部分内容作为状态文本。

$("#save").click(function(e){
    e.preventDefault();
    signup();
});
var signup = function(){
    var name = $('#name').val();
    var server = $('#server').val();
    var username = $('#user').val();
    var pwd = $('#pwd').val();
    var active = $('#active').val();
    $.ajax({
        url: '/services/save.ss',
        data: {
            name : name,
            server : server,
            username : username,
            password : pwd,
            active : active
        },
        type: 'post',
        dataType: 'json',
        success: function(response){
            console.log(response);
        },
        error: function(response){
            console.log('error: ' + JSON.stringify(response));
        }
    })
}

你忘了提contentType: "application/json; charset=utf-8".像这样{ "name ":name,"server":server,"username":username,"password";password,"active":active }制作您的数据,并将其放入 var 中然后传递它。

var jsonData = { "name":name,"server":server,"username":username,"password";password,"active":active };
    $.ajax({
      type: "POST",
      contentType: "application/json; charset=utf-8",
      url: "/services/save.ss",
      dataType: "json",
      data: jsonData,
      success: function(response){
        console.log(response);
      },
      error: function(response){
        console.log('error: ' + JSON.stringify(response));
      }
  });

确保服务器端代码正确以捕获 JSON 数据。

我不确定,但这可能对您有用,方法是在 signup() 之后添加"返回 false",因为它是在按钮单击事件调用时调用的,或者通过在 ajax 中的"成功:"函数之前添加"async:false"。

检查您的套件是否完全打开,如果没有阅读 CORS 以及如何 JSONP。

显然,除非suitelet与Javascript代码位于同一子域中,否则您将获得"部分内容"响应。 正在发生的事情是,您的AJAX请求被视为跨域请求(根据之前的答案阅读CORS),并且Netsuite不处理CORS。

就我自己而言,我对JSONP也没有运气。