[英]context.RewritePath and jquery ajax not calling webmethod
問題背景:這個問題是我的另一個問題的一部分,我發布了這個新問題以使事情易於理解,主要問題鏈接是: 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
Jquery ajax的 解決方案 使用vb.net context.rewritepath調用webmethod ...
在主頁面中我添加了這個....
<base href="http://www.bhinderblink.com/users/jasbir/">
這個stackoverflow 鏈接幫助修復此代碼的問題: -
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.