下午在vs2005环境中,使用jquery调用aspx,本想做相关调试,却一直无法触发page_load事件(在该事件中设置断点一直进入不了),导致调试无法进行。相关代码如下:default.aspx
前台<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页1111</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input id="btnOk" type="button" value="确定2" onclick="btnOk_click1();"/>
    </div>
    </form>
    <script src="jquery-1.6.min.js" type="text/javascript"></script>
    <script src="js_login.js" type="text/javascript"></script>
</body>
</html>
后台using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {    }
}
default2.aspx
前台<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>
后台using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            if ((Request["token"] ?? "") == "ajax")
            {
                // 下面这些内从可以放在一个方法里,然后通过“token”标记去判断执行哪个方法。
                Response.Write("我是直接请求aspx页面返回的文字!");
                Response.End();
            }
        }
    }
}
js_login.jsfunction btnOk_click1(){
            alert("bbb");
            $.ajax({
                type:"Post",
                url: "Default2.aspx",
                // data: "{'token':'ajax'}",// 使用这种方式竟然无法传递参数,各位有知道原因的告诉一下啊。
                data:"token=ajax",
                success: function (data) {
                    $("#dataShow").text(data); 
                }
            });
}
jquery-1.6.min.js
代码就不贴了<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
<compilation debug="true"/>
<!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        -->
<authentication mode="Windows"/>
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
</system.web>
</configuration>
以上代码做过两次测试
1.第一次测试:从第三方下载的部分代码,直接通过vs以打开网站的方式打开代码文件夹后,进行修改编译,后发现无法调试。
2.第二次测试:手动创建网站,然后依次添加相关文件,编译后,发现可以进行调试。
求原因。文件都已经比较过了,没有差别,且相关调试临时文件夹(Temporary ASP.NET Files)也做了相关清理。

解决方案 »

  1.   

    目前发现可能是项目目录名称含中文字符,导致无法访问jquery中的ajax所指定的url。
      

  2.   

    1, 在ajax调用之前,执行
    $.ajaxSetup({ async: false, dataType: "json", type: "post", cache: false })2,在调用ajax时,明确数据类型和编码
    $.ajax({
      url:url,
      type:"POST",
      data:data,
      contentType:"application/json; charset=utf-8",
      dataType:"json",
      success: function(){
        ...
      }
    })
      

  3.   

    Refer this:
    http://www.cnblogs.com/insus/archive/2013/01/22/2872329.html
      

  4.   

     【// data: "{'token':'ajax'}",// 使用这种方式竟然无法传递参数,各位有知道原因的告诉一下啊。】为啥要在外面加引号啊,改成这样
    data:{"token":"ajax"},
      

  5.   

    ajax用了post方式请求default2, 而default2中用!IsPostBack判断不让if中的语句执行,那你这个token也白传了。
      

  6.   

    {'token':'ajax'}   把旁边的双引号去掉