2014-06-16 3 views
0

웹 사이트의 페이지에서 URL을 가져 오는 스크립트가 있습니다. 좋아요 :상대 URL 문제

var catHref = $(this).closest('[id]').children('a').attr('href'); 
//outcome is something like http://www.website.com/ 

다음은이 URL을 사용하여 Json 콘텐츠를 얻는 것입니다. 이렇게 :

문제는이 URL이 상대적이지 않으므로 항상 http : //입니다. Firefox는 매우 엄격한 보안 기능을 제공합니다. 따라서 Json에 https : // 또는 보안 페이지를 요청하면 항상 오류가 발생합니다. 크롬과 IE에서는 모든 것이 잘 작동합니다. 그래서 내가하려고하는 것은이 URL을 상대 URL로 변환하는 것입니다. 좋아요 :

var url = '//' + catHref.replace(/^https?:\/\/[a-z_\-\.]+?\.[a-z]{2,5}\//i, ''); 

불행히도 이것은 작동하지 않습니다. 그것은 다음과 같은 URL을 제공합니다 :

https://http//www.website.com/ 

아무도 이것을 올바르게 수행하는 방법을 알고 있습니까?

답변

1
url2 = url.split("/"); 
if((url2[0]==="http:")&&(window.location.href.split("/")[0]==="https:")){ 
    url2[0] = "https:"; 
    url = url2.join("/"); 
} 

바이올린 :이 http``에`https` 필요할 때 https``에`http` 변환하지만,하지 않을 http://jsfiddle.net/Sj4td/

+0

참고. – Mooseman

+0

나는 단지 "==="에 관해 타이프하고 있었다. .. haha! 좋아,이 완벽하게 작동합니다. 너의 대답은 Thx! – Meules