我正在与Titanium Appcelerator项目(使用oAuth 2)中的Web服务进行交互,我需要发出HTTP POST请求。我用curl成功地发出了这样的命令:
curl https://api.website.com/oauth/ -i -d "param=value&nextparam=goeshere" -H "Authorization: Basic hashgoeshere"
有效。但是当我在Appcelerator中尝试时,我的参数都没有成功通过,而且由于我还没有完成这项工作,我不确定我是否正确传递了标题。我的钛代码如下:
xhr.validatesSecureCertificate = true;
xhr.open("POST","https://api.website.com/oauth");
xhr.setTimeout(10000);
xhr.setRequestHeader('Authorization', "Basic hashgoeshere");
//unsure whether I need the next line or not. I don't in curl
//xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xhr.send('{"param":"value","nextparam":"goeshere"}');
我已经使用API服务器进行了调试,如果我没有发送任何参数,我会收到错误,所以显然我做错了。我只是不知道是什么。任何帮助都会得到帮助!
答案 0 :(得分:2)
您的xhr.send
命令应该将JavaScript对象作为参数,而不是字符串:
xhr.send({ param :"value", nextparam :"goeshere"} );