我在firefox和中遇到以下问题google chrome:
firefox
google chrome
Sys.ParameterCountException: Parameter count mismatch.
我调用以下javascript方法onclick:
onclick
<script type="text/javascript"> var confirmSubmited = false; function SubmitWithLog(par_name, par_address, frm) { jQuery.ajax({ url: "/LogAction.ashx?par_name=" + par_name + "&par_address=" + par_address, type: "GET", timeout: 3000, async: true, // you can try and async:false - maybe is better for you data: action = 4, // here you send the log informations cache: false, success: function(html) { jQuery(frm).submit(); }, error: function(responseText, textStatus, XMLHttpRequest) { jQuery(frm).submit(); } }); return false; } </script>
来自firebug的链接将如下所示:
<a href="#" onclick="SubmitWithLog('%d8%b7%d9%84%d8%a8+%d8%a5%d9%84%d8%aa%d9%85%d8%a7%d8%b3+%d9%84%d9%84%d9%85%d9%88%d8%a7%d8%b1%d8%af+%d8%a7%d9%84%d8%a8%d8%b4%d8%b1%d9%8a%d8%a9','...../RequestList.aspx','#ctl43');return false;">GO </a>
根据以下链接:
错误:Sys.ParameterCountException:参数计数不匹配。
我设置 ScriptMode = "release"
ScriptMode = "release"
但我得到另一个错误
this._toFormattedString is not a function
IE中不存在此问题。
编辑:
public class LogAction : IHttpHandler, System.Web.SessionState.IRequiresSessionState { public void ProcessRequest(HttpContext con) { // log here what you wish string[] statistics = TrackUser(); string a = HttpUtility.UrlDecode(con.Request.Params["Par_name"].ToString()); string b = con.Request.Params["Par_address"].ToString(); TraceActivity(a, b, statistics[0], statistics[1], statistics[2]); // end up with no content con.Response.TrySkipIisCustomErrors = true; con.Response.Status = "204 No Content"; con.Response.StatusCode = 204; } //------------------------------------------- }
可能值得包装数据:用引号引起来的项目
data: action = 4
变成
data: "action = 4"