我正在尝试使用XMLHttpRequest发送PUT请求,但我不确定如何传递参数。
我要发送的卷曲版本是:
$ curl -u me@myurl.com -X PUT -d 'data={"keyname":"keyvalue"}' https://api.myurl.com/v1/action
我有一个身份验证令牌可以拨打电话,所以我正在尝试的是:
var xhr = new XMLHttpRequest();
xhr.open("PUT", ROOT_URL + link + "?auth_token=" + token, true);
xhr.setRequestHeader("Cache-Control", "no-cache");
var data = 'data={"keyname":"' + keyvalue + '"}';
xhr.send(data);
但这似乎不正确,因为我收到500服务器错误,说
"data={\"keyname\":\"keyvalue\"}" does not have a valid root.
关于我做错的任何想法?
答案 0 :(得分:1)
这是因为"data={\"keyname\":\"keyvalue\"}"
不代表有效的json对象。
尝试使用
xhr.send({keyname:keyvalue});, passing a valid json object
或者
var data = {keyname:keyvalue};
xhr.send(JSON.stringify(data));, passing a json object string representation