我有两个代码,我认为应该做同样的事情,但第一个有效,另一个有效(Post vars:agenti,week_,team_)。我已经搜索了几个如何以其他方式做到这一点的例子,我确信我的例子是相似的。 我做错了什么?
首先:
$.post("index.html",
{
agenti: getItems(),
week_: week_array,
team_: team
},
function(data,status){
if (status = 'Success'){
alert('Aktuální řazení operátorů bylo úspěšně uloženo.');
} else {
alert('Aktuální řazení operátorů se nepodařilo uložit.\nKontaktujte prosím správce aplikace.');
}
第二
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "index.html",
data: JSON.stringify({agenti: getItems(), week_: week_array, team_: team}),
success: function (msg)
{
alert('Aktuální řazení operátorů bylo úspěšně uloženo.')
},
error: function (msg)
{
alert('Aktuální řazení operátorů se nepodařilo uložit.\nKontaktujte prosím správce aplikace.')
}
});
我想做第二个,因为我需要指定内容类型,我无法想出如何以第一种方式做到这一点。 谢谢你!
编辑:我使用IE;此代码仅在IE中使用。
答案 0 :(得分:0)
所以第一件事是,不需要使用JSON.stringify
函数,因为data
接受JSON对象,以及表示为url的字符串(test1 = 1& test2 = 2 .. )。所以使用它就好像以下一样。
data: {agenti: getItems(), week_: week_array, team_: team},
当您使用contentType
时:' application / json'没有填充GLOBAL $ _POST变量,因为它仅为form-urlencoded
数据填充contentType
数据,这是{jQuery reference`的数据。
contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8')
为了您想使用application/json
,您可以使用PHP输入在PHP端检索该信息,如下所示。 file_get_contents('php://input');
---工作实例---
使用Javascript:
$.ajax({
type: "POST",
// contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://localhost",
data: {agenti: 'test1', week_: 'test2', team_: 'test3'},
success: function(msg) {},
error: function(msg) {}
});
PHP:
// Retrieve the input
var_dump(file_get_contents('php://input'));
// Use $_POST var
echo json_encode($_POST);