如何使用getJSON方法以POST方式发送数据?

10 浏览
0 Comments

如何使用getJSON方法以POST方式发送数据?

我正在使用上述方法,当URL中只有一个参数时它可以很好地工作。

例如:Students/getstud/1,这里应用了控制器/动作/参数的格式。

现在我有一个在Students控制器中接受两个参数并返回JSON对象的动作。

那么,我该如何使用post方法用$.getJSON()提交数据?

类似的方法也可以接受。

重点是通过AJAX调用控制器的动作。

admin 更改状态以发布 2023年5月23日
0
0 Comments

这是我的“一行”解决方案:

$.postJSON = function(url, data, func) { $.post(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }

为了使用jsonp和POST方法,这个函数将“callback” GET参数添加到URL中。使用方法如下:

$.postJSON("http://example.com/json.php",{ id : 287 }, function (data) {
   console.log(data.name);
});

服务器必须准备好处理回调GET参数并返回json字符串:

jsonp000000 ({"name":"John", "age": 25});

其中“jsonp000000”是回调GET值。

在PHP中,实现方法如下:

print_r($_GET['callback']."(".json_encode($myarr).");");

我进行了一些跨域测试,看起来似乎可以工作。不过还需要更多测试。

0
0 Comments

$.getJSON() 方法执行的是HTTP GET而不是POST。您需要使用$.post()

$.post(url, dataToBeSent, function(data, textStatus) {
  //data contains the JSON object
  //textStatus contains the status: success, error, etc
}, "json");

在那个调用中,dataToBeSent可以是任何你想要的东西,尽管如果你要发送一个表单的内容,你可以使用serialize方法从你的表单中创建POST数据。

var dataToBeSent = $("form").serialize();

0