0
我有一個使用用戶名密碼創建令牌的控制器。如何阻止只呈現文件的請求javascript
[ChildActionOnly]
public class TokenController : Controller
{
public JsonResult GetToken()
{
// get token from another site using username and password.
return Json(new{token}, JsonRequestBehavior.AllowGet);
}
}
我正在創建此令牌以使用我的其他查看頁面。 cshtml頁面包括javascript代碼這段代碼調用令牌/ GetToken操作方法。
我的家庭控制器是這樣的。
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
我的主頁索引視圖就像
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: '/Token/Get',
success: function (response) {
console.log(response);
},
error: function() {
console.log(error);
}
});
});
</script>
當我運行此代碼,下面的錯誤發生。 500(內部服務器錯誤)
「Get」操作只能由子請求訪問。
但有人從瀏覽器調用這個動作方法,他可以產生令牌。 http://domain.com/Token/GetToken這樣子。有人通過WebClient調用我的行爲可以產生令牌。
我不想這些情況。只有我的呈現文件JavaScript代碼應該使用我的令牌控制器。
@bookmarker分配到一些JavaScript變量,更新我的回答對你 –
我更新了我的帖子,但發生了同樣的錯誤。 – barteloma
@bookmarker,請清楚閱讀我的答案。我給了你兩個選擇..或者在沒有childactiononly的情況下使用'POST'或者去第二個選項.. –