无法使用XSJS / jquery.get传递字符 或%



我正在SAP Hana Studio中进行HANA应用程序。我能够将条目插入我在正常的事情" 1"时所做的HDBttable。和"苹果"。当我尝试添加诸如" "之类的值时或"%"由于某种原因,它们在我的数据预览中显示为一个空间。他们怎么不存储?如何解决此问题,以便添加这些字符?更改nvarchar和varchar不起作用。

下面是我桌子的模式。

table.schemaName = "scheming";
table.tableType = COLUMNSTORE;
table.description = "test table";
table.columns = [
    {name = "id"; sqlType = NVARCHAR; nullable = false; length = 10; comment = "id"; },
    {name = "desc"; sqlType = VARCHAR; nullable = false; length = 10; comment = "desc";}
];
table.primaryKey.pkcolumns = ["id"];

这是我的XSJS文件:

$.response.contentType = "text/html";
var id = $.request.parameters.get('id');
var desc = $.request.parameters.get('desc'); 
$.trace.debug("Here is my log.");
try {
    var conn = $.db.getConnection();
    var st = conn.prepareStatement("INSERT INTO "scheming"."blah.blah::test_table" values(?,?)");
    st.setString(1, id);
    st.setString(2, desc);
    st.execute();
    st.close();
    conn.commit();
    conn.close();
    $.response.setBody('X');
} catch (err) {
    $.response.setBody(err);
    // $.response.status = $.net.http.INTERNAL_SERVER_ERROR
}

控制器文件

jQuery(document).ready(
                function() {
                    jQuery.get("/com/colpal/training/test1/Insert.xsjs?id=" + id +"&desc=" + desc,
                            function(result) {
                        if (result == 'X'){
                            console.log("Inserted");
                        }else if(result == 'Y'){
                            console.log("Fail");
                        }
                    });
                });

控制器的剪切显示您正在传递ID和DESC而无需在URL中进行编码。这对于在URL中具有特殊含义的字符不起作用。您可以在RFC 3986中找到有关URL编码和保留字符的详细信息。

在构造URL时,请使用JavaScript的Encodeuricomponent编码单个数据:

jQuery.get("/com/colpal/training/test1/Insert.xsjs?id=" +
    encodeURIComponent(id) + "&desc=" + encodeURIComponent(desc), ...

相关内容

  • 没有找到相关文章

最新更新