簡體   English   中英

context.RewritePath和jquery ajax不調用webmethod

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM