How to POST json to the Wufoo Entries API?

ajax, javascript, json, wufoo

Solution

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

Problem

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.

Original source