我正在尝试在Ajax调用中发送一些数据来更新服务器中的记录
var OrderNotes = $.ajax({
url:'AjaxActions/OrderNotesUpdate.aspx?OrderID=' + OrderID + '&Notes=' + $('#txtNotes').val(),
async:false
}).responseText;
“注意”是unicode。
当我在接收页面上检查查询字符串时,我没有得到相同的代码(不是我输入的文本)。
任何人都知道有什么事吗?是因为数据来自asp.net文本框? 我该怎么办呢?
p.s在发送之前我已经检查过并且每件事情都应该如此,只是在查询字符串中出现问题... 10X
答案 0 :(得分:6)
jQuery.ajax({
url:'AjaxActions/OrderNotesUpdate.aspx',
data:{
OrderID:OrderID,
Notes:$('#txtNotes').val()
},
async:false,
type:'get',
success:function(data)
{
//do something here
}
})
答案 1 :(得分:4)
首先, Praveen Prasad 的回答我认为是正确的。我只想添加一些描述,它将回答“为什么......?”的问题。而不是“怎么......?”。
如果您根据HTTP GET发送到服务器的参数有一些特殊字符,那么在没有编码的情况下不能在URL中使用,因此您必须至少使用
url:'AjaxActions/OrderNotesUpdate.aspx?OrderID=' +
encodeURIComponent(OrderID) + '&Notes=' + encodeURIComponent($('#txtNotes').val())
下一步:您可以使用jQuery.param()
对encodeURIComponent
和地点'&'的网址参数进行编码参数之间的字符:
$.ajax({
url:'AjaxActions/OrderNotesUpdate.aspx?' +
$.param({OrderID: OrderID, Notes: $('#txtNotes').val()}),
async:false})
或
$.ajax({
url:'AjaxActions/OrderNotesUpdate.aspx' +
data: { OrderID: OrderID, Notes: $('#txtNotes').val()},
async:false})
哪个地方'?'如果url
尚未包含',则由data
编码的$.param
和url
之间?否则它会改为使用'&'。
下一步:只要有可能,你应该尝试使用$.ajax
的异步版本。需要看到代码的更多部分来帮助您。一般来说应该是
$.ajax({
url:'AjaxActions/OrderNotesUpdate.aspx' +
data: { OrderID: OrderID, Notes: $('#txtNotes').val()},
success:function(response) {
/* here use can use response.responseText. For examlpe you can
code which call the syncrone $.ajax before and used
the return value here */
}
})