问题背景:这个问题是我其他问题的一部分,我发布了这个新问题以使内容更容易理解,主要问题链接是:LINK,在此链接中您可以找到我的项目和的完整简要信息解决方案,用于加载带有context.rewritepath问题的CSS。
在我的项目中,我在global.asax中编写了context.rewritepath,以将用户请求重定向到其他位置,而无需更改地址栏地址。
问题是:没有context.rewritepath jQuery ajax可以正常工作;在json中调用带有响应的webmethod。但是当我使用context.rewritepath时,jQuery ajax返回的响应是 html 而不是 json 。
以下是实时链接:
jasbir.bhinderblink.com
bhinderblink.com/users/jasbir/default.aspx
两个链接都从服务器调用同一页面。第一个是没有context.rewritepath,第二个没有context.rewritepath。作为演示测试,在此页面上,您可以单击顶部的第二个或第三个文本框,它将为您提供一个将数据保存到数据库的类型框。
您会注意到第一个链接会产生错误,如果您转到firebug java HelloWorld POST响应,那么您将看到它返回的是html而不是json,第二个链接返回了json数据
最佳答案
您可以随时尝试返回正确的mime类型。另外,您可以在ajax发布网址中使用HelloWorld的完整网址。
url: "/users/jasbir/default.aspx/HelloWorld",
更新:
基于链接的问题,您的问题是执行重写时您丢失了请求的/ HelloWorld部分。
If Directory.Exists(Server.MapPath("~/users/" & parameters(i))) Then
Context.RewritePath("/users/" & parameters(i) & HttpContext.Current.Request.Path, False)
Return
Else
Context.RewritePath("/error.aspx")
Return
End If