javascriptajaxjsonwufoo

How to POST json to the Wufoo Entries API?


The current documentation is a little lacking on how exactly to submit forms via Ajax. There is The Entries POST API but it talks only about xml, and doesn't even show an example payload.

I see that Wufoo has a half-built, abandoned jQuery plugin wufoo/Wufoo-jQuery-API-Wrapper which seems to do little more than wrap $.get and format errors a bit. POST is listed as a "todo".

I've tried hitting the API with things like:

{
  "Field1": "first",
  "Field2": "last",
  "Field3": "email@example.com",
  "Field4": "test messsage",
}

And based on the line "This call would contain POST parameters in name/value pairs" and the example postAuthenticated(array('Field1' => 'Frank')); I tried just sending an array of arrays.

[
  ['Field1', 'first'],
  ['Field2', 'last'],
  ['Field3', 'email@example.com'],
  ['Field4', 'test messsage']
]

But since those are obviously the wrong format, I always get the following in response.

{
    "Success": 0,
    "ErrorText": "Errors have been <b>highlighted</b> below.",
    "FieldErrors": [
        {
            "ID": "Field3",
            "ErrorText": "This field is required. Please enter a value."
        },
        {
            "ID": "Field4",
            "ErrorText": "This field is required. Please enter a value."
        }
    ]
}

Does anyone have any idea how to format these requests? Maybe someone with more experience with CurlService could interpret it from their example, but I can't make heads or tails of that documentation, nor find any examples online.


Solution

  • I should have known. The service doesn't accept json, it only replies in json. Submitting a regular urlencoded form body works.