jQuery ajax内容类型

jQuery ajax内容类型,jquery,ajax,Jquery,Ajax,我将数据从视图发送到控制器 $.ajax({ type: "POST", url: "/registerAgency", data: JSON.stringify(data), contentType: "application/json; charset=utf-8", success: function(responseData, textStatus, jqXHR) { alert("da

我将数据从视图发送到控制器

    $.ajax({
       type: "POST",
       url: "/registerAgency",
       data:  JSON.stringify(data),
       contentType: "application/json; charset=utf-8",
       success: function(responseData, textStatus, jqXHR) {
           alert("data saved")
       },
       error: function(jqXHR, textStatus, errorThrown) {
          alert("error");
       }
   })

});
我不明白为什么我的请求没有使用content typeapplication/json,而是使用application/x-www-form-urlencoded


这个论坛上有这样的问题,但我真的没有任何想法如何解决这种情况

我对这个问题也有点好奇,因为我通常不使用
contentType:'application/json'
。它的处理方式与使用$\u POST、$\u GET或$\u REQUEST有很大不同。当然,它属于json内容类型

jquery

var data = { "agencyName":"sadf", "description":"asdf", "phoneNumber":"1111111111121", "webSite":"", "address":{ "country":"asdfasdf", "region":"asdf", "postalCode":"23423", "locality":"asdfasdf", "additionalInfo":"asdfasd" } };

$.ajax({
    type: "POST",
    url: ".../registerAgency.php",
    data: JSON.stringify( data ),
    contentType: 'application/json; charset=utf-8',
    success: function(responseData, textStatus, jqXHR) {
       alert(responseData);
    },
    error: function(jqXHR, textStatus, errorThrown) {
      alert("error");
    }   
});
php/server

<?php
    // parameters are not accessible via POST, GET, nor REQUEST
    $res = json_decode( file_get_contents('php://input') );
    var_dump($res);
?>


参考资料:

在JSFIDLE中测试您的精确代码工作得非常好,请求头获得了正确的contentType头您正在尝试JSON.stringify()做什么?你能告诉我们要字符串化的示例参数吗?请尝试以下数据类型来代替数据:'json'这是我的json{“agencyName”:“sadf”,“description”:“asdf”,“phoneNumber”:“11111111111 21”,“webSite”:“address”:{“country”:“asdfasdf”,“region”:“asdf”,“postalCode”:“23423”,“locality”:“ASDFASDFASDF”,“additionalInfo”:“asdfasd”}@olehk,我删除了我的答案,因为我可能遗漏了什么。你到底想完成什么?根据我的模拟,指定contentType:'application/json'将不起作用-但没有错误,头内容类型将变为application/json,但服务器接收不到任何内容/空。你能详细说明你的目标吗?