0

XMLHttpRequest を使用して PUT リクエストを送信しようとしていますが、引数を渡す方法がわかりません。

私が送信したいのcurlバージョンは次のとおりです。

$ 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.

私が間違っていることについてのアイデアはありますか?

4

1 に答える 1

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 
于 2012-11-19T06:39:54.683 に答える