Javascript AJAX调用不会发送数据
我知道在这方面已经有很多问题了,但这些问题似乎都不起作用。我试图将表单中的数据发送到NetSuite上的suitelet中,但它甚至没有发送数据。有人知道我哪里出错了吗 我一直在控制台中获取部分内容作为statusTextJavascript 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
$("#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那么问题很可能出在您的服务上。