使用箭头符号发布formdata时出错

时间:2016-08-27 09:53:33

标签: javascript jquery html ajax razor

如何将包含箭头符号的字符串传递给formData? (例如<>"我爱的东西"在括号内?我看到即使这种形式的短信也不允许我在箭头标志之间放置任何文字)

我试图从ui传递给控制器​​一组数据 - 名称,位置,描述,linkedin页面,推特页面和状态。

我希望能够从描述textarea得到html等价物,这意味着所有换行符都将被转换为intro段落,并且有一组按钮(像富文本编辑器一样)。

问题在于,当我试图用ajax发布带有以下描述的formData时:<>在箭头标志之间有一些东西,它会失败。

这是我的代码:

Javascript部分:

   var boardData = {
       name: ko.observable(),
       title: ko.observable(),
       description: ko.observable(),
       status: ko.observable()
   };

   function addData() {
        var formStatus = $('.js-form-status');

        formStatus.text('');

        var formData = new FormData();
            formData.append('name', boardData.name());
            formData.append('title', boardData.title());
            formData.append('description', boardData.description());
            formData.append('status', boardData.status());

        $.ajax({
            url: '/MyController/AddBoardData',
            data: formData,
            method: 'post',
            processData: false,
            contentType: false
        }).done(function () {
            formStatus.text('Board Data has been added');
        }).fail(function () {
            formStatus.text('Error: Something went wrong');
        });

Html部分:

<div class="block well">
            <button class="btn btn-primary ">Add data</button>
            <form class="form-inline margin-10 hide" data-bind="submit: addData" id="add-form">
                <table>
                    <tr>
                        <td>Name:</td>
                        <td><input type="text" class="input-small margin-10" style="width: 100%;" required placeholder="Name" data-bind="value: boardData.name"></td>
                    </tr>
                    <tr>
                        <td>Title:</td>
                        <td><input type="text" class="input-small margin-10" style="width: 100%;" required placeholder="Title" data-bind="value: boardData.title"></td>
                    </tr>
                        <tr>
                            <td>Description:</td>
                            <td><textarea type="text" id="descriptionArea" class="form-control margin-10" rows="20" style="width: 100%" required placeholder="Description" data-bind="value: boardData.description"></textarea></td>
                        </tr>
                    <tr>
                        <td>Status:</td>
                        <td><input type="text" class="input-small margin-10" style="width: 100%;" required placeholder="Status" data-bind="value: boardData.status"></td>
                    </tr>
                </table>

它甚至没有到达控制器,因此请求在开始时失败。我试着把&lt;&gt; somthing&gt;在名字上,认为这是因为textarea,但它不是。

我的想法是ajax试图转换&#34;&#34;这是预定义的东西,这是它崩溃的地方。

问题:如何将包含箭头符号的字符串传递给formData?

1 个答案:

答案 0 :(得分:0)

我所要做的就是浏览文字并将所有<替换为&lt;,将>替换为&gt;,然后才能正常工作。