从 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。

谢谢

从 jQuery 调用 Web 方法时出错

我运行了您的代码演示并使其正常工作。您是否检查过是否在 web.config 中正确设置了 ScriptModule 处理程序?

您确定确切的网址是"../../定价引擎/合同视图.aspx' + '/' + fn ?

因为ContractView.aspx是您当前的网页