2017-12-15 8 views
0

WordpressサイトでホストされているJavascriptコードを使用してAPIを使用しています。 APIは、URLが API URL Wordpressに特殊文字が追加されました - 「地域」という単語が「®ion」になります

を交換しているように、その後の要求の数の後に、要求が失敗し始め、正常に動作します...「領域=英国」....

に... "®ion = uk "...

URLを試してみました&これをエンコードするHTMLと同じですが、同じ問題で同じ方法で壊れます。

API URLに「地域」という言葉を永久に/静的に設定するにはどうすればよいですか?

<script> 

    var API_URL = 'https://api.example.com/US?sport=NFL&region=US&apiKey=____'; 

    var APIXHR = new XMLHttpRequest(); 

    function btn() { 
     var url = API_URL; 
     APIXHR.open('GET', url, true, 'jsonp'); 
     APIXHR.send(); 
     APIXHR.addEventListener("readystatechange", procReq, false); 
    } 

    function procReq(e) { 
     if (APIXHR.readyState == 4 && APIXHR.status == 200)  { 
     var resp = JSON.parse(APIXHR.responseText);   
     var Home = resp.data.game.TeamA_TeamB.Teams[0]; 
     var Away = resp.data.game.TeamA_TeamB.Teams[1]; 
     document.getElementById("Home").innerHTML = Home; 
     document.getElementById("Home").style.textTransform = "uppercase"; 
     document.getElementById("Away").innerHTML = Away; 


</script> 
+0

[Clbuttic](https://en.wikipedia.org/wiki/Scunthorpe_problem)。そこから脱出するのに少し熱心です。より多くのコード/問題点を特定することなく、正確に何をすべきかを伝えることは、ほとんど不可能です。 – deceze

+0

私は機能を表示するのに十分な量を抽出しましたが、修正されてコード内に何かが壊れている場合は、編集後には単にタイプミスです: – Woy

答えて

1

&regのHTMLは、 "®"のHTMLエンティティです。 HTMLにそのコードを埋め込む場合は、HTMLルールに従ってエスケープする必要があります。つまり、...&amp;region=US&amp;apiKey...が必要です。そして実際には&のすべてのインスタンスは、あまりにも適切に話してエスケープする必要があります。

代わりに、スクリプトを外部ファイルに入れて、<script src="...">と含めることもできます。そこにはHTMLのコンテキストではないし、プレーンなエスケープされていないJavascriptを使うことができます。

+0

Decezeありがとうございました、それは最初に機能し、その後特殊文字を使用して元に戻りました。あなたは正しいですが、それはHTMLに埋め込まれているので、ファイルを分けて、外部のjsファイルをどこから取り出したらよいか試してみましょう – Woy

関連する問題