在ajaxpost中更正拼写

在ajaxpost中更正拼写,ajax,Ajax,我有两个版本的代码,我相信应该做同样的事情,但第一个有效,另一个无效(Post-vars:agenti,week,team)。我已经寻找了几个例子来说明如何用另一种方法来做,我相信我的例子是类似的。 我做错了什么 第一: $.post("index.html", { agenti: getItems(), week_: week_array, team_: team }, function(data,status){ if (status = 'Success'){ al

我有两个版本的代码,我相信应该做同样的事情,但第一个有效,另一个无效(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中使用。

因此,首先,无需使用
JSON.stringify
函数,因为
数据
接受JSON对象,以及表示为url的字符串(test1=1和test2=2…)。所以像下面这样使用它是可以的

data: {agenti: getItems(), week_: week_array, team_: team},
另外,当您使用
contentType
:“application/json”时,不会填充全局$\u POST变量,因为它只填充
form urlencoded
数据,这是
contentType
选项的默认值,这里是jQuery引用中的数据`

contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8')
为了使用
application/json
,您可以使用如下PHP输入在PHP端检索该信息<代码>文件\u获取\u内容('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:


好的,我用iconv解决了编码问题,所以我还是用.post方法。但这仍然困扰着我,为什么另一种方法不起作用?发布到html页面!真的吗?我已经试着按照你的建议编辑了数据部分,但没有成功。我还尝试删除contentType部分,但也没有帮助。请尝试按照我的建议编辑数据部分,同时注释contentType选项,然后选中。它对我有用。试过了,没用。当我添加这个脚本时,页面上的所有其他脚本也停止工作。我已经检查了很多次,括号或类似的东西应该没有任何问题。我已经编辑了我的答案,并把一些——工作示例——放在那里,你可以检查一下。这可能有用。为了查看服务器端返回的内容,我使用了浏览器网络工具。(为了可能需要)查看输出是个好主意!现在它输出(到PHP中):字符串(22)“razeni_ulozit=Uložit”;其中“razeni_ulozit”是我按下时调用该函数的按钮的ID,“Uložit”是它的值。
// Retrieve the input
var_dump(file_get_contents('php://input'));
// Use $_POST var
echo json_encode($_POST);