お疲れ様です。
関連レコードの項目を条件付きで集計
https://cybozudev.zendesk.com/hc/ja/articles/203030394
の記事をまねて、JavaScriptで、関連レコードの値を取得するコードを書いています。
ちゃんと動作するのですが、時々、30行目の、xmlHttp.responseTextで、
"{"message":"入力内容が正しくありません。","id":"1505999166-1023156141","errors":{"query":{"messages":["クエリ記法が間違っています。"]}},"code":"CB_VA01"}"
が返ってくる、レコードがあります。
そのレコードは何度やっても同じ結果です。
query部分は下記です。
var man_rid_str = man_rid.value;
var query = 'In_Reply_To like "' + man_rid_str + '"' + ' limit 100 offset ' + offset;
当初は、そのレコードのman_ridの値に特殊のコードが入っているのでは?と疑って、色々確認したのですが、
不思議なことに、同じレコードを更新(値は何も変えずに)すると、エラーは発生しなくなります。
正直、不思議で仕方がありませんが、同じような経験をお持ちの方、心当たりがある方は、何かアドバイスをお願いします。
確実に再現するコードが書けないので、残念なのですが、運用していると時々発生して困っています。
よろしくお願いします。
同じような状況になったことはなく、お答えできかねるのですが、他に有効な回答がない場合は是非、
ブラウザのDeveloper toolsからNetworkタブのHeaderを確認し、どういったクエリが送信されているかを確認してみてください。
参考: http://www.buildinsider.net/web/chromedevtools/01#page-4
その内容を貼り付けていただければ,もしかするとなにか分かるかもしれません。
村濱一樹 さま
アドバイスに従って調査したら不具合がわかりました。
man_rid.value の最後に0x0dが入っていたらしく、それが悪さをしていたようです。
文字列1行なのですが、REST APIで書き込むときに、0x0dが入ってもそのまま保存されるのですね。
ブラウザで保存しなおすと、0x0dが無くなるのでエラーが発生しなくなるようで、原因が分かり、ホントすっきりしました。
デバッグ中に表示される文字列ではこの0x0dが見つけられなかったので気が付きませんでした。
本当に助かりました。ありがとうございます。
> 文字列1行なのですが、REST APIで書き込むときに、0x0dが入ってもそのまま保存されるのですね。
なるほど、それは知りませんでした。思わぬ罠ですね。解決できたということでなによりです。
今回のようにDeveloper toolsを使えばデバッグも楽になるかと思いますので、ぜひ下記もご一読くださいませ。
動かない?そんな時はデバッグをしてみよう!入門編
system
(system)
クローズされました:
5
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。