我正在尝试创建登录页面,但我坚持将数据作为JSON发送到Cherrypy。试图覆盖提交按钮,因为当我按下按钮时,AJAX不会发送任何数据。
旧代码已删除
@EDIT我已经更改了代码,现在我没有向服务器发送任何数据(我假设按下按钮后控制台中没有任何内容)
$("#myForm").click(function(){
var dataString = {};
dataString.login = $("#login").val();
dataString.password = $("#password").val();
$.ajax({
type: 'POST',
url: 'http://localhost:8080/login',
data: JSON.stringify(dataString),
contentType: 'application/json',
dataType: 'json',
success: function(response) {
console.log(response);
},
error: function(response) {
console.log(response);
}
});
});
<!DOCTYPE html>
<html>
<head>
<link href="style.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script src="example.js"></script>
</head>
<body>
<div class="login-page">
<div class="form">
<form id="myForm" class="login-form">
<input type="text" name="login" id="login" placeholder="login"/>
<input type="password" name="password" id="password" placeholder="password"/>
<button form="myForm" type="submit">Login</button>
<p class="message">Not registered? <a href="#">Create an account</a></p>
</form>
</div>
</div>
</body>
</html>
我在这里做错了什么?
答案 0 :(得分:1)
您想要发布帖子请求(您还必须处理服务器端的帖子):
type: 'POST',
还要将其放在提交功能中:
var dataString = {};
dataString.login = $("#login").val();
dataString.password = $("#password").val();
所以代码变成:
<form id="myForm" class="login-form">
<input type="text" id="login" placeholder="login"/>
<input type="password" id="password" placeholder="password"/>
<button class="button_submit">login</button>
<p class="message">Not registered? <a href="#">Create an account</a></p>
</form>
$("#myForm").submit(function(){
var dataString = {};
dataString.login = $("#login").val();
dataString.password = $("#password").val();
$.ajax({
type: 'POST',
url: 'http://localhost:8080/login',
data: JSON.stringify(dataString),
contentType: 'application/json',
dataType: 'json',
success: function(response) {
console.log(response);
},
error: function(response) {
console.log(response);
}
});
});
答案 1 :(得分:1)
您使用错误时指的是该按钮,请参阅documentation
变化:
CTMarkupRange commentStart = paragraph.getCTP().addNewCommentRangeStart();
commentStart.setId(BigInteger.ZERO);
XWPFRun run = paragraph.createRun();
run.setText("text");
CTMarkupRange commentEnd = paragraph.getCTP().addNewCommentRangeEnd();
commentEnd.setId(BigInteger.ZERO);
CTR ctr = paragraph.getCTP().addNewR();
CTMarkup ctMarkup = ctr.addNewCommentReference();
ctMarkup.setId(BigInteger.ZERO);
到
<button class="button_submit">login</button>
将name属性添加到输入字段而不是id(如果您愿意,可以使用两者)并将GET切换到POST以保持数据隐藏:
<button id="button_submit">login</button>
然后将jQuery修复为:
<input type="text" id="login" name="login" placeholder="login"/>
<input type="password" id="password" name="password" placeholder="password"/>
答案 2 :(得分:1)
在这种情况下,最好发送一个POST请求,因为它更多一些&#34;隐藏&#34;然后请求使用GET抛出参数(POST在&#34; background&#34;中发送数据)。另请注意,如果您想正确处理表单提交并且您正在使用jQuery,请使用submit
事件处理程序。
$("#myForm").submit(function(){
// do stuff
});
答案 3 :(得分:0)
将public class tttt extends JFrame{
private JTable tab;
private JPanel panel1;
private JButton btnAddData;
private void createUIComponents() {//Custom Create for tab
Object[][] data1 = {{'1'}};
Object[] data2 = {'2'};
tab = new JTable(data1, data2);
btnAddData = new JButton("Refresh");
btnAddData.addActionListener(e->Refresh());
panel1 = new JPanel(new BorderLayout(10, 10));
panel1.add(btnAddData, BorderLayout.NORTH);
panel1.add(tab, BorderLayout.CENTER);
}
public void CreateFrame(){
createUIComponents();
setContentPane(panel1);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public void Refresh(){
Object[][] data1 = {{'9'}};
Object[] data2 = {'9'};
tab.setModel(new DefaultTableModel(data1, data2));
revalidate();
}
public static void main(String[] args) {
tttt Frame = new tttt();//create frame with table with '1'
Frame.CreateFrame();
// Frame.Refresh();//frame doesn`t change
}
}
移至顶部。在你的情况下,按钮正在执行它的event.preventDefault()
的正常行为,需要阻止它执行到ajax。
submitting