2013-04-21 65 views
2

我有這樣的:jQuery的.getJSON和ASP.NET MVC

$.getJSON("https://scyk.pl/Account/GetSid").done(function (sid) { 
    settings.parameters.sid = sid; 
}); 

這:

public JsonResult GetSid() 
{ 
    return Json(SomeString); 
} 

.done的jQuery功能不執行 - 爲什麼?

+0

那你怎麼知道它沒有執行? – Musa 2013-04-21 18:07:42

+0

'settings.parameters.sid'爲null,如果我把'console.log(「done」)'放在那裏,什麼也沒有發生 – ojek 2013-04-21 18:10:24

回答

4

使用Json,需要一個JsonRequestBehavior選項並將其設置爲AllowGet

return Json("string", JsonRequestBehavior.AllowGet); 

只允許POST請求,改變你的控制器動作,以這種倍率:

[HttpPost] 
public JsonResult GetSid() 
{ 
    return Json(SomeString); 
} 
+0

好的,那是有效的。但是如果我希望它只是POST? – ojek 2013-04-21 18:19:14

+0

然後你不應該設置請求行爲,但當然使用jQuery的Ajax方法而不是getJson。 – MartinHN 2013-04-21 18:20:48

+0

如果您想限制請求只允許POST,請在方法上面添加[HttpPost]。 – MartinHN 2013-04-21 18:22:04