从 jQuery 调用 Web 方法时出错
本文关键字:出错 方法 Web jQuery 调用 | 更新日期: 2023-09-27 18:37:22
我正在从jQuery调用WebMethod,执行以下操作:
function WebMethod(fn, paramArray, successFn, errorFn) {
var paramList = {};
if (paramArray.length > 0) {
for (var i = 0; i < paramArray.length; i += 2) {
paramList[paramArray[i]] = paramArray[i + 1];
}
}
var params = $.toJSON(paramList);
$.ajax({
type: 'POST',
url: '../../PricingEngine/ContractView.aspx' + '/' + fn,
contentType: 'application/json; charset=utf-8',
data: params,
dataType: 'json',
success: successFn,
error: function(xhr, status, error) {
// Display a generic error for now.
alert("AJAX Error!");
}
});
}
// Used returned object to populate every field
function updateTextFields(result) {
//do some processing here
}
function failed(result) {
alert('failed');
}
// EVENTS
// ------------------------------------------------------------
$(".editableField").keydown(function(e) {
WebMethod('PriceContract',
[
'AQ', aq.val(),
'SOQ', soq.val()
], updateTextFields, failed);
});
调用 .toJSON 之后的 JSON 字符串:
{"AQ":"140000","SOQ":"1169"}
C# 方法
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static ContractsListPricing PriceContract(string AQ, string SOQ)
{
ContractsListPricing clp = new ContractsListPricing();
clp.Aq = 1;
clp.Soq = 2;
return clp;
}
这将返回以下错误:
无效的 JSON:(后跟当前页面的完整 HTML)。
请不要注意 C# 中的逻辑,因为它尚未实现。我正在使用jquery-json插件来解析JSON。
谢谢
我运行了您的代码演示并使其正常工作。您是否检查过是否在 web.config 中正确设置了 ScriptModule 处理程序?
您确定确切的网址是"../../定价引擎/合同视图.aspx' + '/' + fn ?
因为ContractView.aspx是您当前的网页