まず第一に、私はnode.jsでちょっと新しいです。このコード(ブラウザーで機能します)$.ajax('/postmessage'{method: "POST",data:{message: 'foo', username: 'bar'})
をブラウザーを開かずに使用し、他のことをしているときに実行したいと思います。出来ますか ?またはより良い方法がありますか?
ありがとう。
編集:私はaxiosを使用してみました:
const axios = require('axios'); const instance = axios.create({ baseURL: 'sitehere' });
instance.post('/postmessage', { message: 'foo', username: 'bar'}) .then( function (response) { console.log(response); }) .catch( function (error) { console.log(error); })
エラー403が表示され、メッセージが送信されません。
あなたはほとんどそこにいました。注意点が1つあります。以下:
$.ajax('/postmessage'{method: "POST",data:{message: 'foo', username: 'bar'})
このHTTPリクエストを送信します:
POST /postMessage HTTP/1.1
Content-Type: application/x-www-form-urlencoded
message=foo&username=bar
axiosを使用すると、次のように送信されます。
POST /postMessage HTTP/1.1
Content-Type: application/json
{"message":"foo", "username":"bar"}
これはaxiosのドキュメントに示されていますが、axiosの主なユースケースの1つは消費REST APIであるため、意図的な選択です。
node.jsには組み込みquerystring
モジュールがあり、次のように、POSTリクエストの本文コンテンツとして文字列をaxiosにフィードできます。
const axios = require('axios');
const querystring = require("querystring");
const instance = axios.create({ baseURL: 'sitehere' });
instance.post('/postmessage', querystring.stringify({ message: 'foo', username: 'bar'}))
.then(
function (response) { console.log(response); })
.catch(
function (error) { console.log(error); })
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加