programing

jquery ajax는 http url에서 응답 텍스트를 가져옵니다.

closeapi 2023. 10. 13. 22:13
반응형

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

반응형