2017-12-15 3 views
0

Wordpress 사이트에서 호스팅되는 Javascript 코드를 사용하는 API가 있습니다. 이 API는 URL이 API URL Wordpress에 특수 문자가 추가되었습니다. "region"이라는 단어가 "®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

관련 문제