No response from iTMS affiliates program on the POST problem. Total brick wall trying to contact a human there, but I’m not ready to give up on being an iTMS partner while iPod is king. Finally solved it with a workaround (which I hate): If user voted on the previous lyric, the vote is processed, then, rather than displaying the rest of the output immediately, the browser is invisibly directed to the next page through a location header rather than POST. User still gets the same page she would otherwise, but links to iTMS now work without throwing a confusing “Re-POST?” dialog in the browser.
Also signed up as a Rhapsody affiliate, so non-iTunes peeps are not locked out. Most lyrics now have dual iTunes/Rhapsody artist links. Thanks to mneptok for kicking my butt on that.
Love how trivial it is to create links to artists in Rhapsody, e.g.: http://www.rhapsody.com/PatsyCline — which means I can auto-generate the URLs. So what was a 10-hour database population job for iTMS was a 5-minute job with Rhapsody. Hey Apple: Cluetrain!
Scot,
(I wanted to tell you this after reading your ORA, so I’m glad you bring it up here)
The redirect-after-POST model is what I’ve been using for years in my work. I never gave it much thought actually – it just seemed cleaner to separate the data-updating POST from a view-generating GET. As you have seen, trying to merge the two leads to all sort of problems. On the other hand of course, there is a performance cost to the redirect but can live with that in the apps I work on.
Alternatively, did you try targetting your POST to a hidden IFRAME ? This works wonders for simple updates that don’t require major changes to the page. The kind of AJAX-like stuff many of us did before it was even called AJAX.
I wonder if someone somewhere did a survey of what percentage of web developers use redirects after POST vs. generating content directly.
Hope this helps,
–Jonathan
Hey Jonathan – Actually, my only concern with this method is that returns a 302 into the logs rather than a 200. I don’t think there’s any real significance there to the user, but it’s still not 100% clean. Any experience dealing with that?
Nope, didn’t try using an iframe. I had actually considered taking this opportunity to get my feet wet with ajax techniques, but just don’t have the time right now.