2013-11-10 2 views
1

ajax로 API GET 요청을하고 싶습니다. jquery 함수가 첫 번째 입력 필드에서 API 키 값을 가져온 다음 입력 필드 # 2에 concatenate 결과를 표시합니다. url + api key. 두 번째 입력 필드에 표시된 값으로 get 요청을해야합니다. 이 요청을 어떻게받을 수 있습니까? 대상 서버는 크로스 도메인 스크립팅이 가능하도록 설정되어 SITEAPI AJAX 요청 받기

<script> 
$(document).ready(function() { 
    $(document).ready(function() { 

    /** get the inputs we might need */ 
    var $result = $('#result'); 
    var $input = $('#input'); 

    $result.data('url', $result.val()); 
    var timer; 

    /** function to submit data to the server and 
     update the result input on success */ 
    function submitForm(input, newValue) { 
    $.ajax({ 
     type: "POST", 
     url: "/concatenate/index.php", 
     data: {input:input}, 
     success: function (data) { 
     $result.val(newValue); 
     } 
    }); 
    }; 

    /** on key up, fill #result with the url + input */ 
    $input.bind('keyup', function() { 
    var $this = $(this); 
    var inp = $this.val(); 
    var url = $result.data('url'); 
    var newValue = url + inp + '/'; 

    if(timer) { clearTimeout(timer); } 
    timer = setTimeout(function(){ 
     submitForm(inp, newValue) ; 
    }, 40); 
    return false; 
    }); 

}); 
}); 
</script> 

</head> 
<body> 

<h1>Enter a word:</h1> 

<form action="index.php" method="post"> 
API Key: <input type="text" id="input" name="input"></br> 
Concatenated Url + API: <input type="text" style="width:200px;" id="result" name="result" value="http//www.example.com/"></br> 
</form> 
+0

URL이 스크립트가 실행되는 도메인과 다른 도메인 인 경우 대상 서버가 교차 도메인 스크립팅을 허용하도록 설정되어 있지 않으면 작동하지 않습니다 (기본적으로 서버는 설정되지 않습니다). 이것은 교차 사이트 스크립팅입니다 (동일한 도메인 출처 정책에서 읽음). –

+0

@CrayonViolent 대상 서버가 도메인 간 스크립팅을 허용하도록 설정되었습니다. – techAddict82

답변

2

나는 거기에이 작업을 수행하는 다른 방법의 아마 많은,하지만 내 머리에 튀어 최초의 아이디어에 연결된 URL을 생성하는 것입니다 확신 submitForm. 시간 제한에 도달하고 AJAX 호출을 할 준비가 될 때까지 정확히 정확한 시간에 input 필드에 있던 것을 잡아서 가장 최신의 " 값 (최대한 많이). 아마도 다음과 같은 것일 수 있습니다.

// Note: I've ditched the parameters because they are no longer needed 
// We're getting the values that the parameters contained in this function 
function submitForm() { 
    var inp = $("#input").val(); 
    var url = $("#result").data('url'); 
    var concatenatedUrl = url + inp + '/'; 

    $.ajax({ 
    type: "GET", 
    url: concatenatedUrl, 
    data: {input:input}, 
    success: function (data) { 
     $result.val(newValue); 
    } 
    }); 
} 

희망이 있습니다. 내가 그 질문을 잘못 이해했는지 알려주세요.

+0

'url + apikey'를 사용하여 'GET'을 시도하고 결과를 표시하려고합니다. – techAddict82

+0

@ techAddict82 죄송합니다. 같은 일이긴하지만,'type'을 "GET"으로 바꾸면됩니다. 정확히 어떤 부분에 문제가 있습니까? –

+1

그것을 알아 냈습니다. 감사! – techAddict82