2013-02-08 68 views
1

我想要獲得標準的Visual Studio 2012 MVC4互聯網模板和oAuth工作,但它不會!Visual Studio MVC 4互聯網模板和OpenAuth拋出JS錯誤

所以這裏是重新創建的簡單步驟。

  1. 新建MVC4 Inernet應用
  2. 在包管理器控制檯執行:更新包
  3. 取消註釋OAuthWebSecurity.RegisterGoogleClient()文件AuthConfig.cs(我的印象是,谷歌的OAuth確實下所以取消註釋這條線在AuthConfig.cs文件將啓用它不需要鑰匙)
  4. F5在這一點上,我看到下面的錯誤運行的應用程序

Error when entering login page: 

Unhandled exception at line 115, column 5 in http://localhost:63180/Scripts/jquery.unobtrusive-ajax.js 

0x800a01b6 - Microsoft JScript runtime error: Object doesn't support property or method 'live' 
  1. 點擊主頁
  2. 上的登錄鏈接點擊谷歌按鈕

在這一點上,我得到這個錯誤:

ProtocolException was unhandled by user code 
No OpenID endpoint found 

回答

4

錯誤和的原因解決方案

原因是,jquery -u nobtrusive-ajax.js負責使用jQuery live方法在ASP.NET MVC中支持不顯眼的ajax。但是這個方法在jQuery 1.7中被棄用,並且在1.9中被刪除。

此方法允許與任何DOM元素存在或未來相關聯的事件。 目前使用的方法代替live方法on

但是,語法有點不同,因爲該方法在jQuery上有更多的用處。

$ ("form [data-ajax = true].") live ("submit", function (e) { ... } 

修改調用live一起on通話。

對於on像我們恰巧生活on 3個參數: 事件(如直播,將「提交」) 選擇器(元素「孩子」)是基於選擇哪些必須始終存在 處理函數(如生活)。

在這種情況下,我們的產品線是這樣的:

$ ("body"). on ("submit", "form [data-ajax = true]", function (e) { ... } 

我搬到選擇器的on第二個參數,使你成爲基本的選擇「身體」(不是最優化的,但遠我肯定總有)。

的想法是,最後一個功能與是選擇基(體)內的form [data-ajax = true]類型的所有當前和未來的元素相關聯。

對於所有其他呼叫住(有3個)讓我們成爲相同的替換如下:

$ ("body"). on ("click", "form [data-ajax = true]: submit", function (e) { ... } 
$ ("body"). on ("click", "a [data-ajax = true]", function (e) { ... } 
$ ("body"). on ("click", "form [data-ajax = true] input [type = image]", function (e) { ... } 

而且準備好了!有了這個,我們已經恢復了Ajax功能MVC不顯眼,你的應用程序應該再次正常工作!

從翻譯:http://geeks.ms/blogs/etomas/archive/2013/01/18/jquery-1-9-y-el-unobtrusive-ajax-de-asp-net-mvc.aspx

+0

@ da7rutrak thanks!即時通訊不太好管理SO的格式化選項。 –

2

中的NuGet不顯眼的庫尚未更新,並且不使用jQuery 1.9工作。

請參閱Unobtrusive Ajax stopped working after update jQuery to 1.9.0

+0

這修正了實時錯誤,但是現在當用google嘗試oauth時仍然沒有發現端點錯誤。這個修補程序是否應該消失? – ChiliYago

+0

按照您的步驟,我無法重現該問題。你是如何解決jQuery問題的?我用手動替換現場。嘗試新的項目而不更新軟件包並查看Google登錄是否有效。 – Jasen

+0

你在防火牆後面嗎? http://stackoverflow.com/questions/5788236/no-openid-endpoint-found – Jasen