Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX调用不会发送数据_Javascript_Ajax_Html_Netsuite - Fatal编程技术网

Javascript AJAX调用不会发送数据

Javascript AJAX调用不会发送数据,javascript,ajax,html,netsuite,Javascript,Ajax,Html,Netsuite,我知道在这方面已经有很多问题了,但这些问题似乎都不起作用。我试图将表单中的数据发送到NetSuite上的suitelet中,但它甚至没有发送数据。有人知道我哪里出错了吗 我一直在控制台中获取部分内容作为statusText $("#save").click(function(e){ e.preventDefault(); signup(); }); var signup = function(){ var name = $('#name').val(); var

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

我一直在控制台中获取部分内容作为statusText

$("#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));
        }

    })
}

我不确定,但这可能对您有用,方法是在注册后添加“return false”(按钮单击事件调用时调用),或者在ajax中的“success:”函数之前添加async:false。

您忘了提到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数据。

检查suitelet是否完全打开,如果没有读取CORS以及如何使用JSONP

显然,除非suitelet与Javascript代码位于同一子域中,否则您将得到部分内容响应。发生的情况是,根据前面的回答,您的AJAX请求被视为在CORS上读取的跨域请求,Netsuite不处理CORS


我自己也不太喜欢JSONP。

您是否尝试过在浏览器中调试以查看是否有错误?除了travis所说的之外,请确保实际调用了signup。进行ajax调用的代码是正确的。虽然ajax的右括号中缺少分号,但它将在没有分号的情况下运行。请尝试查看控制台日志,并将日志记录为console.logxhr.responseText尝试将注册函数移到函数调用上方。JavaScript函数需要位于调用它们的位置之上。@user2573699那么问题很可能出在您的服务上。