2010-04-23 3 views
2

Зачем POST работать, но не GET? Я не использую [AcceptVerbs(HttpVerbs.Post)]. Я звоню это:

public ActionResult GetTest(string key) 
     { 
      var test = new { HelpTest = key }; 
      return Json(test); 
     } 

И это работает, когда я делаю это:

$.post("/Home/GetTest", { key: options.key }, 
         function(helpTest) { 
          alert(helpTest.HelpTest); 
         }); 

Но не так:

$.get("/Home/GetTest", { key: options.key }, 
          function(helpTest) { 
           alert(helpTest.HelpTest); 
          }); 

Почему это? Использование GET возвращает XMLHttpRequest.status из 500. О чем я смущен?

ответ

3

это потому, что возвращение JSON не возвращает JSON, чтобы получить запросы небезопасно, и вы должны избегать его, но если вы действительно хотите использовать его использовать перегрузку JSON установить свойство allowget, то он будет работать

return Json(data, JsonRequestBehavior.AllowGet); 
+0

Спасибо - в чем проблема с возвратом JSON в запрос GET? – iboeno

+0

Он открыт для хакерских атак, смотря на это видео, если вам интересно узнать больше о безопасности http://live.visitmix.com/MIX10/Sessions/FT05 – Chino

Смежные вопросы