![](/img/trans.png)
[英]jQuery/Ajax - Trying to create a POST method by Ajax and get response to HTML
[英]Trying to understand JQuery/Ajax Get/POST calls
如果我錯了,請糾正我,但據我了解,如果我要更改數據,則要使用POST;如果要檢索數據,則要使用GET。
基於該假設。
我有(MVC5)應用。
我的JavaScript
function MyLoadData(myValue) {
$.ajax({
method: 'POST',
url: '/Home/GetMyData',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify({ "MyValue": myValue}),
success: function (data) {
// Do Stuff
}
});
和我的控制器。
public JsonResult GetMyData(string myValue)
{ // Do Stuff }
僅當我將方法設置為“ POST”時,此方法才有效;如果將其設置為“ GET”,它將仍然進行服務器調用,但不會將myValue傳遞給控制器。
還要注意的是,GetMyData方法上沒有數據注釋。
在這種情況下,我不應該使用GET從控制器中獲取數據嗎?
根據評論已更新:
function MyLoadData(myValue) {
$.ajax({
method: 'POST',
url: '/Home/GetMyData',
dataType: 'json',
data: { "MyValue": myValue},
success: function (data) {
// Do Stuff
}
});
POST
和GET
方法都可以將myValue傳遞給控制器。
GET基本上僅用於從服務器獲取(檢索)某些數據。 注意:GET方法可能返回緩存的數據。
POST也可以用於從服務器獲取一些數據。 但是,POST方法從不緩存數據,通常用於與請求一起發送數據。
GET
和POST
之間的主要區別在於POST
也將提交表單數據。 在您的示例中,可以通過將?MyValue=<myValue>
附加到URL來使用GET,WebAPI會將值分配給Action的參數。
如果GET請求需要工作,請使用以下代碼塊:
function MyLoadData(myValue) {
$.ajax({
method: 'GET',
url: '/Home/GetMyData?myValue=test',
success: function (data) {
// Do Stuff
}
});
基本上,您可以使用GET或POST來獲取數據。 但是在GET中,數據是通過查詢字符串傳遞的。 在POST中,它既可以通過查詢字符串也可以通過正文傳遞。
一種使用POST的現實情況-假設您的方法要求使用Customer參數,並且需要將Customer對象作為參數發送,則可以通過body發送Customer對象的json表示形式,但不能通過GET發送。
另一個原因是安全性,如果使用GET,則可以通過瀏覽器調用方法。但是,如果使用POST,則不能直接調用該方法。
這些是重要的區別。有關更多區別,請參見此鏈接-http: //www.diffen.com/difference/GET_(HTTP) _vs_POST_( HTTP)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.