jquery.xdomainajax.jsでYQLが使えなくなった件

【2019/01/14追記】

YQLそのものがなくなったため

当記事の内容は意味を成さなくなりました。

一応、JSONPでの対策についてメモを残しましたので参考になれば

 

 

ーーーーー

うちの7連戦記事絞り込み検索にて

jquery.xdomainajax.jsを使わせてもらっていたのですが

先日突然検索機能が作動しなくなり

調べてみたところ

 

html table is no longer supported.

See https://policies.yahoo.com/us/en/yahoo/terms/product-tos/yql/index.htm for YQL Terms of Use

 

といったようなエラーが吐き出されていたことがわかりました。

で、更に情報を探し回ってみた結果

jquery.xdomainajax.js内の修正でなんとか対策できました。

詳しい解説とかは他に任せるとして

ここではどう対策したのかだけを残しておこうかと。

 

修正点その1:html→htmlstringに変更

f:id:LITTLEWING:20170615002700p:plain

 

修正点その2:o.dataの修正

(「diagnostics: true,env: 'store://datatables.org/alltableswithkeys',」の追加)

f:id:LITTLEWING:20170615002859p:plain

どちらも反転してる箇所が修正点となります。

これで取得自体は出来るようになったはず。

ただし、取得後のデータの扱いが若干変わると思うので

そこはご自分のソースにも手を加える必要があるのではないかと。

うちの場合でいうなら

f:id:LITTLEWING:20170615003524p:plain

・・・

f:id:LITTLEWING:20170615003712p:plain

こんな感じで、tempArray[0]、[1]、[2]までが不要なデータ

(というかタグとタイトル)であるため、

for文のスタートを3からに修正しています(以前は1スタートでした)。

同様に、末尾の[216]、[217]にも不要なタグデータが入っているので

これも含めないようにtempArray.length-2としています。

これで、以前と同じ形でデータを扱えるようになりました。