AJAX - 覆盖提交功能

时间:2017-06-12 05:15:32

标签: javascript jquery html ajax function

我正在尝试创建登录页面,但我坚持将数据作为JSON发送到Cherrypy。试图覆盖提交按钮,因为当我按下按钮时,AJAX不会发送任何数据。

旧代码已删除

  

@EDIT我已经更改了代码,现在我没有向服务器发送任何数据(我假设按下按钮后控制台中没有任何内容)

我的.js

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

我的.html

<!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>

登录页面(数据未加密?)

PIC

  • 链接中的密码?

我的控制台(空?)

PIC

  • 没有登录电话

我在这里做错了什么?

4 个答案:

答案 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