Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2872

JavaScriptのfetch()にcgiで返すときは改行コードを取ろう

$
0
0

概要

  • Javascriptでfetch()からサーバに問い合わせした時に、文字列を返すとします。その文字列を読み込んだのに条件判定に失敗しました。
  • わかってしまえば簡単なこと。文字列に改行コードが入っていたのでした。

コード

cgiで何かの処理とか条件判定した時に文字列をJavaScript/fetch()に返すとき、JavaScriptでは例えばこんな問い合わせをサーバにするとします。

...fetch('/cgi/hoge.cgi',{headers:{"Content-Type":"text/html"},body:hoge}).then(response=>{sonsole.log(response.text);if(response.text==="FILE_EXIST"){...//ファイルがあった場合の処理...}}).catch(error=>{...})

サーバ側のhoge.cgiでは問い合わせに結果を返す時に、例えばファイルが存在するのかを文字列で返したとします。その例です。

$ cat hoge.cgi
# なんかの条件判定を設定。
...
# 例えばファイルが存在するか?[-f$hoge]&&result="FILE_EXIST"||result="NONE"#結果を返すecho"Content-type: text/html"echo""echo-n$resultexit 0

ポイントはecho -nと改行コードをつけないようにすることです。最初echo $hogeで返してうまく行かなたったので一晩悩みました。console.log(response.text)ではリターンが表示されないので気が付きませんでした。XRLのレスポンス(応答ペイロード)を見て気が付きました。

どなたかのお役に立てれば嬉しいです。


Viewing all articles
Browse latest Browse all 2872

Trending Articles