JQuery Post sends form data and not JSON

后端 未结 3 1881
终归单人心
终归单人心 2020-12-13 08:31

Trying to send json. Here\'s my function:

var object = ... ;

$.ajax({
      type: \'POST\',
      url: \'\',
      contentType: \'application/jso         


        
相关标签:
3条回答
  • 2020-12-13 09:00

    With JSON.stringify(object)

    Sample:

    $.ajax({
        type: 'POST',
        url: '<url>',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: JSON.stringify(object)
    });
    

    Note JSON.stringify is not supported in all browsers (http://caniuse.com/#feat=json ), in particular browsers IE7 and lower.

    If you need to support this browsers too you can use this Javascript library: https://github.com/douglascrockford/JSON-js

    0 讨论(0)
  • 2020-12-13 09:10

    Stringify using JSON.stringify(object)

    Modify the data field to:

    ...
    data: JSON.stringify(object),
    ...
    

    The way you are doing it, IMO, jQuery sees the parameter as a dictionary (key-value pairs), and constructs a percentile-encoded string from that; and hence you see that output.

    0 讨论(0)
  • 2020-12-13 09:26

    I have found it easier to send data in default 'application/x-www-form-urlencoded' format with JSON as a field like this:

    $.ajax({
        type: 'POST',
        url: '<url>',
        dataType: 'json',
        data: {json:JSON.stringify(object)}
    });
    

    On server use the regular method to receive field called json.

    Just shared to see if this is valid for you.

    0 讨论(0)
提交回复
热议问题