jQuery ajax contentType

时间:2016-02-06 18:08:59

标签: jquery ajax

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

    $.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");
       }
   })

});

我不明白为什么我的请求不使用内容类型 application / json 但使用 application / x-www-form-urlencoded

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

1 个答案:

答案 0 :(得分:0)

我对这个问题有点好奇,因为我通常不会使用contentType: 'application/json'。它的处理方式与使用$ _POST,$ _GET或$ _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 /服务器

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

参考:Ajax call with contentType: 'application/json' not working