jquery ajax는 http url에서 응답 텍스트를 가져옵니다.
둘 다:
var response = $.ajax({
type: "GET",
url: "http://www.google.de",
async: false,
success : function() {
alert (this);
}
});
아님:
var response2 = $.get("http://www.google.de", function(data) {
alert("Data Loaded: " + data);
});
물건을 하나 주세요.액세스하려면 어떻게 해야 합니까?responseText
?
그냥 이렇게 다시 써야 합니다.
var response = '';
$.ajax({ type: "GET",
url: "http://www.google.de",
async: false,
success : function(text)
{
response = text;
}
});
alert(response);
Karim이 말했듯이 크로스 도메인 ajax는 서버가 허용하지 않는 한 작동하지 않습니다.이 경우 구글은 그렇지 않지만, 많은 경우에 이 문제를 해결하기 위한 간단한 속임수가 있습니다.로컬 서버에서 HTTP 또는 HTTPS를 통해 검색한 내용을 전달받으면 됩니다.
예를 들어 PHP를 사용하는 경우 다음과 같은 작업을 수행할 수 있습니다.
web_root/ajax_responders/google 파일을 만듭니다.php(다음 포함):
<?php
echo file_get_contents('http://www.google.de');
?>
그런 다음 자바스크립트에서 구글 도메인에 직접 연결하는 대신 코드를 변경합니다.
var response = $.ajax({ type: "GET",
url: "/ajax_responders/google.php",
async: false
}).responseText;
alert(response);
먼저 도메인 간 요청을 허용하려면 JQuery 플러그인을 다운로드해야 합니다.여기서 다운받으세요: https://github.com/padolsey/jQuery-Plugins/downloads
query.xdomainsjajax.js라는 파일을 프로젝트로 가져와 다음 코드와 함께 포함합니다.
<script type="text/javascript" src="/path/to/the/file/jquery.xdomainajax.js"></script>
외부 웹 페이지의 html을 텍스트 형태로 가져오려면 다음과 같이 쓸 수 있습니다.
$.ajax({
url: "http://www.website.com",
type: 'GET',
success: function(res) {
var text = res.responseText;
// then you can manipulate your text as you wish
}
});
jquery ajax 함수에서 성공 콜백 시그니처는 다음과 같습니다.
function (data, textStatus) {
// data could be xmlDoc, jsonObj, html, text, etc...
this; // the options for this ajax request
}
요청하신 데이터 유형에 따라 '데이터를 사용하여매개변수를 입력하면 'data' 인수가 나옵니다.
문서에서 다음을(를)
dataType(String) 기본값:지능적 추측(xml 또는 html).서버에서 반환할 데이터 유형입니다.아무 것도 지정하지 않으면 jQuery는 지능적으로 응답 X를 전달합니다.ML 또는 response 응답의 MIME 유형에 따라 성공 콜백에 대한 텍스트.
사용 가능한 유형(그리고 성공 콜백의 첫 번째 인수로 전달된 결과)은 다음과 같습니다.
"xml": jQuery를 통해 처리할 수 있는 XML 문서를 반환합니다.
"html": HTML을 일반 텍스트로 반환합니다. 포함된 스크립트 태그는 DOM에 삽입되면 평가됩니다.
"script" : 응답을 자바스크립트로 평가하여 평문으로 반환합니다."cache" 옵션을 사용하지 않는 한 캐싱을 사용하지 않습니다.참고: 그러면 POST가 원격 도메인 요청을 위한 GET로 바뀝니다.
"json": 응답을 JSON으로 평가하고 JavaScript Object를 반환합니다.
"jsonp": JSONP를 사용하여 JSON 블록에 로드합니다. URL 끝에 "?callback=?"을 추가하여 콜백을 지정합니다. (jQuery 1.2에 추가됨)
"text": 일반 텍스트 문자열입니다.
http://docs.jquery.com/Ajax/jQuery.ajax#options 를 참조하십시오.
jax 크로스 도메인을 사용할 수 있는 유일한 방법은 JSONP(http://ajaxian.com/archives/jsonp-json-with-padding) 입니다.
그리고 여기 크로스 도메인 아약스(http://usejquery.com/posts/9/the-jquery-cross-domain-ajax-guide) 를 달성하기 위한 다양한 기술을 게시하는 게시물이 있습니다.
사실, 당신은 교차 도메인 요청을 할 수 있습니다.Firefox 개요: http://ajaxian.com/archives/cross-site-xmlhttprequest-in-firefox-3
웹킷과 IE8 역시 어떤 방식으로든 이를 지원합니다.
교차 도메인인 경우 jQuery AJAX 요청이 실패하므로 cURL(PHP)을 사용하여 프록시 서버를 설정할 수 있습니다.
PHP 파일 응답기를 가정합니다.php의 내용은 다음과 같습니다.
$url = "https://www.google.com";
$ch = curl_init( $url );
curl_set_opt($ch, CURLOPT_RETURNTRANSFER, "true")
$response= curl_exec( $ch );
curl_close( $ch );
return $response;
당신의 AJAX 요청은 이 응답자에게 해야 합니다.교차 도메인 요청을 실행할 수 있도록 php 파일.
이건 어때?
$.get(some-url, some-data, function(d, s, x){
// d is text response data
// s is text status
// x is a XMLHttpRequest object
// so... you can code like that:
console.log(x.responseText);
})
맛있게 드세요! :)
아주 오래된 일이지만 누군가에게 도움이 되기를 바랍니다.다른 오류 코드를 가진 응답을 다시 보내고 있으며 이것이 내가 찾은 유일한 해결책입니다.
$.ajax({
data: {
"data": "mydata"
},
type: "POST",
url: "myurl"
}).done(function(data){
alert(data);
}).fail(function(data){
alert(data.responseText)
});
JQuery가 다음과 같이 평가절하한 이후로success
그리고.error
기능, 당신이 사용해야 하는 것입니다.done
그리고.fail
, 를 사용하여 데이터에 액세스할 수 있습니다.data.responseText
에 있을 때fail
, 그리고 그냥.data
에 있을 때done
.
이거 먹어봐요.
alert( data['responseText'] );
언급URL : https://stackoverflow.com/questions/1152692/jquery-ajax-get-responsetext-from-http-url
'programing' 카테고리의 다른 글
c에 더미가 없다고요? (0) | 2023.10.13 |
---|---|
AngularJS: ng-model inside ng-repeat? (0) | 2023.10.13 |
외부 키가 null일 수 있습니까? (0) | 2023.10.08 |
cookieStore 및 AngularJS를 사용하여 사용자가 로그인 또는 로그아웃하는지 확인하는 모범 사례 (0) | 2023.10.08 |
꿀꺽꿀꺽 + 제대로 작동하지 않음 (0) | 2023.10.08 |