데이터를 외부 API로 보내고 응답을 기다리고 결과를 해석하는 .js 파일을 작성하려고합니다. 외부 API는 XML 기반이며 XML을 본문으로 사용하는 HTTPS Post (content-type; text/xml)를 허용합니다. 나는 cURL을 통해 API를 올바르게 호출 할 수 있습니다. 나는 HTML을 열 때API 호출 jQuery
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body onload="CallService()">
<script type="text/javascript">
var webServiceURL = 'https://www.url.com';
var xmlString = '<xml><parameter1>value1</parameter1>
<parameter2>value2</parameter2></xml>';
function CallService() {
$.ajax({
url: webServiceURL,
type: "POST",
dataType: "xml",
data: xmlString,
processData: false,
contentType: "text/xml; charset=\"utf-8\"",
success: OnSuccess,
error: OnError
});
return false;
}
function OnSuccess(data, status) {
alert(data.d);
}
function OnError(request, status, error) {
alert('error');
}
$(document).ready(function() {
jQuery.support.cors = true;
});
</script>
</body>
</html>
나는 다른 쪽 끝납니다 경고 말하고 "오류"아무것도 얻을 (외부 API의) :
이것은 내가 지금까지있는 것입니다. JavaScript/Ajax/jQuery를 사용하여이를 수행하는 방법이 있습니까? 아니면 JS 호출을받는 "지원"코드가 필요합니까?
1) XML이 아닌 JSON
2를 사용하는 경우 당신을 관심을 끌지 것이다, JSONP 사용하면 도메인 간 쿼리를 만들고 싶어 할 때
브라우저에서 다른 도메인의 URL로 전화를 거는 데는 여러 가지 문제가 있습니다. 기본적인 대답은 가능하지 않다는 것입니다. 그러나 최근의 몇몇 개발로 인해 서버가 이러한 요청을 허용 할 수있게되었습니다. 이를 수행하려면 서버 소프트웨어를 제어해야합니다. – Pointy
서버를 제어 할 수 있다면 어떻게해야합니까? 이것을 허용하기 위해 어떤 설정을 변경해야합니까? – user1375193
"CORS"에 대한 자습서 (Cross-Origin Resource Sharing)를 찾으십시오. 그것은 HTML5의 것입니다, 그리고 그것은 특별한 헤더와 그런 것들을 필요로합니다. 이전 버전의 브라우저는 지원하지 않지만 결국 2012입니다 .-) – Pointy