2011-12-21 27 views
0

嗨我試圖驗證從其他網站我已經在MVC3 .NET C#我的解決方案,其他網站使用這個崗位作爲認證:認證來自另一個站點

http://www.othersite.com/Account/logInToCMS?username=UNAME&password=PWD

我嘗試以下

<form method="post" > 
<input name='username' /> 
<input name='password' /> 
<div class="button"><%: Ajax.ActionLink("Login", "http://www.othersite.come/Account/logInToCMS" , new AjaxOptions { HttpMethod = "POST" })%></div> 
</form> 

但響應會導致一個錯誤:

「NetworkError:400錯誤的請求 - http://localhost:50505/account/http%3a/www.othersite.com/Account/logInToCMS

所以,如果我能以某種方式刪除的‘http://本地主機:50505 /帳號/’的一部分,將工作

+0

如果它是另一個web應用程序...只是使用普通的URL ...不要使用助手。您可以隨時在web.config中擁有該登錄URL來隨時更改它。 – Romias 2011-12-21 15:03:55

回答

1

Ajax.ActionLink旨在通過對您的形式存在於Web應用程序指定ActionController使用。如果你看一下Ajax.ActionLink的方法重載,你會看到,你必須至少指定Action。當你打電話給ActionLink時,你所說的基本上是你要撥打的Action被稱爲http://www.othersite.come/Account/logInToCMS ......這當然是不正確的。

如果您正在使用jQuery再看看在jQuery.Ajaxjsonp交叉域名腳本。

+0

那麼有什麼選擇? – 2011-12-21 16:03:49

+0

@CharbelWakim看起來像我更新了一個選項與您的評論同時。如果你還沒有使用jQuery,我強烈建議你開始。乾杯 – Craig 2011-12-21 16:09:20

1

將一個HTML提交按鈕,並給URL作爲HTML表單的‘動作’屬性。

+0

你能否詳細說明答案? – 2011-12-21 14:51:41

+0

@CharbelWakim認爲他正在通過設置action屬性來更新你的表單標籤,就像這個'

'...然後使用一個提交按鈕來提交表單。 – Craig 2011-12-21 15:31:09

+0

@Craig如果我這樣做,我會得到一個白頁與響應,這就是爲什麼我需要使用ajax – 2011-12-21 16:03:09