2016-09-08 17 views
4

하드 코딩 된 URL에 관한 쿼리가 있습니다. jquery를 사용하여 자바 스크립트를 사용하여 전화를 걸 때 나는 $.post('http://localhost:8000/timer/check/'하드 코딩 된 URL의

으로 처리합니다. 이제 개발 서버에서 정상적으로 작동합니다. 다른 서버에 배포해야 할 때 코드의 모든 URL을 수동으로 변경해야합니다. 그렇다면 하드 코딩 URL을 피하는 방법은 무엇입니까? 당신이 당신의 메타 태그이 기본 URL에 상대적인 경로를 작성해야이 후

<head> 
<base href="{{your base url_here}}"> 
</head> 

에 태그 아래에 쓰기를 사용할 필요가 이것을 달성하기 위해

+8

도메인의 루트를 기준으로 URL을 만듭니다. 예 :''/ timer/check/'' –

+1

당신은 2 가지 일을 할 수 있습니다. 1) 상대 URL 만들기 2) 도메인에 대한 하나의 하드 코딩 된 URL로 전역 변수를 만든 다음 개별 URL에 추가하고 프로덕션 또는 테스트에서 하나의 변수 만 변경합니다. – VJI

답변

1

.

<head> 
    <base href="http://localhost:8000/timer/check/"> 
</head> 

전체 URL이 http://localhost:8000/timer/check/test.php 경우 예

를 들어

. 이제 ajax 호출에서 기본 URL 인 'test.php'을 상대방에게 쓸 수 있습니다.

예 : https://jsfiddle.net/ptLzs7m5/1/

+0

누가 투표를했는지 알지 못합니다. 그러나 이것이 작동합니다 ... 투표가 실패한 이유가 무엇입니까? –

+0

@RoryMcCrossan, 확인해주세요 ... 나는이 프로젝트를 5 월에 완료했습니다. JS에서도 적용되었습니다. –

+1

@RoryMcCrossan, check .. https://jsfiddle.net/ptLzs7m5/1/ –

1

지금 당신이

당신이 또한

window.location.protocol //you'll get your protocol `http` or `https` 
window.location.port  //this will return the port 
0

가 일부를 사용할 수 있습니다 귀하의 게시물 메서드에 URL을 전달할 수 있습니다이

var host = window.location.hostname; 
var url = host + "/" + timer/check/; 

같은 시도 이 일반적인 문제에 대한 해결책 -

1) $.post('./timer/check')을 사용하십시오. 그러면 현재 도메인이 사용되고 URL이 추가됩니다 (권장)

2) 전역 변수를 만들어 원하는 곳 어디에서나 사용할 수 있습니다. dev에서 작업 할 때 로컬 URL을 할당하고 프로덕션 작업을 할 때 prod url을 할당하십시오.

3) 랩퍼를 작성하고 항상 해당 랩퍼를 사용하여 요청을 보내십시오. 현재 상태 (Dev 또는 Prod)를 값으로 사용하여 전역 변수를 만들고 계속 변경합니다. 그리고 그것을 사용하십시오 -

post(url) { 
    var baseurl = ''; 
    if(CURRENT_ENVIRONMENT=='DEV') 
     baseurl = 'http://localhost:8080'; 
    else if(CURRENT_ENVIRONMENT=='PROD') 
     baseurl = 'http://yourwebsiteurl';' 
    $.post(baseurl+'/timer/check') 
     //and so on 
} 

당신이 선호하는 것을 사용할 수 있습니다.