这是一个小型内部工具,使少数人可以查询数据库。查询的加号如下:
SELECT SUBSTRING(DateName(month,CreatedOn),0,4) + ' - ' + SUBSTRING(CAST(Year(CreatedOn) AS varchar(10)),3,3) as Month, Year(CreatedOn) as Year,
使用jquery ajax调用将查询传递到服务器
var d = "query=" + $("#txtQuery").val();
$.ajax({
type: 'GET',
url: '/Reports/GetReport',
data: d,
但是,我收到服务器错误并进行调试,发现服务器上的查询缺少加号。即
SELECT SUBSTRING(DateName(month,CreatedOn),0,4) ' - ' SUBSTRING(CAST(Year(CreatedOn) AS varchar(10)),3,3) as Month
从FireBug,
localhost:1489/Reports/GetReport?query=SELECT%20SUBSTRING(DateName(month,CreatedOn),0,4)%20+%20%27%20-%20%27%20+%20SUBSTRING(CAST(Year(CreatedOn)%20AS%20varchar(10)),3,3)%20as%20Month,%20Year(CreatedOn)%20as%20Year..
如何确保加号被视为输入字符串的一部分,而不是作为concat运算符,在这里似乎是这种情况。
最佳答案
“ +”在URI中被视为空格。
使用encodeURIComponent。