AJAX请求导致Text.splitText引发错误

时间:2018-08-11 02:29:41

标签: javascript jquery ajax post web-frontend

我正在编写一个JavaScript网页,并且在其中尝试发送此Ajax请求。

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">     </script>
    <script>
     function onSubmit() {
      $.ajax({
        url: window.location.href,
        method: "POST",
        context: document.body,
        data: {newContent: $("#verseContent").contents()[0]},
        success: () => {console.log("DONE")},
        error: (err) => {console.error(err);}
      });
    }
    </script>
  </head>
  <body>
    <textarea id="verseContent"><%= content %></textarea>
    <button onClick="onSubmit()">SAVE</button>
  </body>
</html>

但是它总是抛出错误:

[Error] TypeError: Can only call Text.splitText on instances of Text
    splitText (jquery.min.js:2:71316)
    i (jquery.min.js:2:71316)
    jt (jquery.min.js:2:71208)
    jt (jquery.min.js:2:71232)
    param (jquery.min.js:2:71508)
    ajax (jquery.min.js:2:75809)
    onSubmit (1:10)
    onclick (1:30)

我似乎找不到任何信息可以帮助调试此问题...是否有人知道会发生什么情况?非常感谢您的任何想法,想法或任何方向。

1 个答案:

答案 0 :(得分:1)

您应该发送data的AJAX请求是JSON对象。

根据您的情况,我想您想从textarea发送内容。如果为true,则可以尝试以下代码:

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">     </script>
    <script>
        function onSubmit() {
        $.ajax({
            url: window.location.href,
            method: "POST",
            data: {
                newContent: $("#verseContent").text()
            },
            success: () => {console.log("DONE")},
            error: (err) => {console.error(err);}
        });
    }
    </script>
</head>
<body>
<textarea id="verseContent"><%= content %></textarea>
<button onClick="onSubmit()">SAVE</button>
</body>
</html>