jquery ajax调用不能使用asp.net url重写

时间:2014-11-11 07:05:26

标签: jquery asp.net .net ajax url-rewriting

我正在尝试使用Web服务方法。我也在我的应用程序中使用url重写。

我的ajax jquery调用正在关注

   $.ajax({
            type: "POST",
            url: "dataone.asmx/lastName",
            data: JSON.stringify({ "firstname": $("#el").val(),"lastname":"Ali" }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            processData: false,
            error: function (errorThrown) {
                console.log(errorThrown + "   " + errorThrown);
                alert(errorThrown.responseText + "what's wrong?" + " " + errorThrown);
            },
            success: function (msg) {
                console.log(msg.d);
                alert(msg.d);
                return false;
                // Do something interesting here.
            }
        });

我的网络方法正在关注

 [WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//, ResponseFormat = ResponseFormat.Json
public string lastName(string firstname,string lastname)
{
    return  firstname == "fawad" ? "ali" : "first name incorrect"+lastname;
}

我友好的网址是

 <a href="edmonton/clickme">click</a>

在我的global.asax中,我正在进行URL重写,如下所示

HttpContext.Current.RewritePath(originalPath.Replace("edmonton/clickme", @"Default.aspx"));

但是我的网络方法没有被调用。当我删除url重写我的ajax调用开始工作

如果您有任何想法可能有什么问题,请在下面的答案中发布。

由于

3 个答案:

答案 0 :(得分:0)

请在下面试一下。

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (HttpContext.Current.Request.RawUrl == "/edmonton/clickme")
            HttpContext.Current.RewritePath("/Default.aspx");
    }

答案 1 :(得分:0)

尝试在全局的asax中添加它,只需确保&#34; clickme&#34;在

后面的默认页面代码中
//check for a specific 'icon' class
if(!document.querySelector('svg').classList.contains(`icon${Id}`)){
    console.log(`class icon${Id} not found`);
}
//check if no class contains 'icon' in its name
if(document.querySelector('svg').className.indexOf('icon') === -1){
    console.log(`Can not find class which has the word 'icon' in its name`);
}

答案 2 :(得分:0)

在重写规则中添加以下条件。

SSL

这将忽略XHR请求。

示例:在以下规则中,我跳过了对图像文件,css,js等以及XHR请求的重写。希望这会有所帮助。

<add input="{HTTP_X_Requested_With}" pattern="^XMLHttpRequest$" negate="true" />