2014-01-12 38 views
0

在我的asp.net 4.0電子商務web應用程序中,登錄的客戶可以點擊錨點,如「過去6個月內的訂單」或「訂單去年「來查看他過去的訂單。當點擊這樣的錨,我做一個$就打到我ASMX Web服務方法來檢索過去的訂單列表並顯示出來,象下面這樣:jQuery ajax調用web服務(asmx)觸發認證彈出框

$.ajax({ 
    type: "POST", 
    url: "/webservices/OrderServices.asmx/GetOrderList", 
    data: theParamter, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data){ 
     displayOrders(data); 
    }, 
    error: function(errMsg) { 
     alert(errMsg); 
    } 
}); 

在C#中的Web服務的方法很簡單,只是一種網絡方法來獲取指定過去持續時間的訂單清單。

theParameter是在ajax調用之前獲得的,它只是一個參數,指示客戶是否想要查看過去6個月或過去一年的訂單。

使用IIS Express在我的開發環境中一切正常。但在製作時,當用戶點擊任一錨時,瀏覽器會彈出一個小小的diablog框,要求用戶輸入用戶名和密碼。

這是什麼造成的? Web服務(asmx)不知道請求是從經過身份驗證的客戶發送的?如何防止瀏覽器顯示身份驗證彈出窗口?謝謝!

回答

2

有可能您的服務器的Windows安全性或安全性未針對您的網站進行正確配置。請訪問波紋管引導它們如何禁用Windows安全步驟的鏈接:

http://www.youtube.com/watch?v=CtpkXsWgcAM

http://technet.microsoft.com/en-us/library/cc731244(v=ws.10).aspx

+0

感謝。我會看看這兩個環節。一個問題是,我沒有在開發環境中使用https,但在生產中,我們使用https。這會有所作爲嗎?謝謝。 – Stack0verflow

+1

沒有https綁定沒有區別。 – Dalorzo

+0

謝謝。我懷疑他們會在生產上啓用匿名身份驗證。如果啓用匿名身份驗證不是一個可接受的解決方案,是否意味着我必須放棄ajax調用? – Stack0verflow