当前位置: 首页 > 面试题库 >

contentType:'application / json'的Ajax调用不起作用

颛孙正谊
2023-03-14
问题内容

我有一个ajax调用,它将表单数据发送到php函数。因为我读到很多东西,所以使用contentType: 'application/json'最佳实践是我想尝试的。但不幸的是,我的脚本在使用时不返回任何内容。如果删除它,脚本将执行应做的事情。

您知道原因可能是什么以及为什么吗?谢谢!

$('#Form').submit(function(e) {
            e.preventDefault();

            var content = $(this).serialize() + "&ajax=1";

            $.ajax('app/class/controller/contactForm.php', {
              type: "POST",
              //contentType: 'application/json',
              dataType: 'json',
              data: content,
              success: function(result) {
                  console.log(result);
              }
            });
        })

和我的PHP:

if(isset($_POST['ajax']) && $_POST['ajax'] === '1') {
    echo json_encode(validateForm($_POST));
}

问题答案:

使用时,contentType: 'application/json'您将无法依靠$_POST被填充。
$_POST仅针对表单编码的内容类型填充。

因此,您需要像这样从PHP原始输入读取数据:

$input = file_get_contents('php://input');
$object = json_decode($input);

当然,如果要发送application/json,则实际上应该发送JSON,而您并没有这样做。您或者需要直接将对象序列化构建为JSON,或者需要执行类似的操作-使用jQuery将表单数据转换为JavaScript对象 -以从表单序列化对象。

老实说,由于您要处理表单数据,因此我不太认为有使用的用例application/json



 类似资料:
  • 问题内容: 我有一个ajax调用,它将表单数据发送到php函数。因为我读到很多东西,所以使用最佳实践是我想尝试的。但是不幸的是,我的脚本在使用时不返回任何内容。如果删除它,脚本将执行应做的事情。 您知道原因可能是什么,为什么吗?谢谢! 和我的PHP: 问题答案: 使用时,您将不能依赖于人口稠密。 仅针对表单编码的内容类型填充。 因此,您需要像这样从PHP原始输入读取数据: 当然,如果要发送,则实际

  • 问题内容: 我注意到在jquery中使用$ .post()时,默认contentType为application / x-www-form-urlencoded- 当我的ASP.NET MVC代码需要具有contentType = application / json时 如何使$ .post()发送contentType = application / json?我已经有大量的$ .post()函

  • 问题内容: 已编辑 我有一个ajax调用(使用),它调用以下php脚本。 这持续了40秒。 如果我关闭触发调用的浏览器窗口, 即使我显式发送了一个字符串并刷新了缓冲区 ,它仍然返回false ! 请问有人在这里回答吗? 问题答案: 您将需要添加“ ignore_user_abort(true);” 在PHP脚本之上,并在从脚本中回显某些内容后调用“ ob_flush()”(有关原因,请参见 PHP

  • 问题内容: 我制作了一个Jquery函数,该函数(目前)会动态调用该函数,并显示警告。与Firefox,铬:它的作品!当我尝试IE7(第一次)时,它失败了。如果我重新加载页面(F5)并重试,则可以!o_O 我终于明白为什么会这样。在我的旧网站中,我使用了jquery-1.3.2.min.js库。在此我使用jquery-1.4.2.js,实际上它不起作用。那么这是什么一回事?这个新版本中有错误吗?

  • 问题内容: 尝试访问$ container的’.box’类时,在ajax调用内部使用(this)不起作用。 如果不清楚我要做什么,我会尝试更改动态元素的css。但是例如 根本没有调整css。如果我将其移到ajax,success部分之外,它可以工作,但是我无法获得“描述”。 问题答案: 你近了 在您使用它的上下文中,“ this”是指ajax请求,而不是发出事件的事物。要解决此问题,请在发出aja

  • 问题内容: 我有这个功能: 我的页面使用最喜欢的按钮加载内容,但是在Ajax调用并生成其他新内容后,单击新内容的按钮时该功能不起作用。有什么不对吗? 问题答案: 那是因为您正在使用动态内容。 您需要将点击调用更改为委托方法,例如 要么