jQuery的阿贾克斯获得从HTTP URL的responseText(jquery ajax ge

2019-06-26 08:49发布

无论是:

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

Answer 1:

您只需必须重写它这样:

var response = '';
$.ajax({ type: "GET",   
         url: "http://www.google.de",   
         async: false,
         success : function(text)
         {
             response = text;
         }
});

alert(response);


Answer 2:

作为卡里姆说,跨域AJAX不起作用,除非服务器允许它。 在这种情况下,谷歌没有,但是,有一个简单的技巧来解决这个问题在许多情况下。 只要有本地服务器通过HTTP或HTTPS检索到的内容。

例如,如果你使用PHP,你可以:

创建文件WEB_ROOT / ajax_responders / google.php有:

<?php
  echo file_get_contents('http://www.google.de');
?>

然后改变你的代码连接到的,而不是谷歌的域名,直接在JavaScript:

var response = $.ajax({ type: "GET",   
                        url: "/ajax_responders/google.php",   
                        async: false
                      }).responseText;
alert(response);


Answer 3:

在jQuery的AJAX功能,成功回调签名是:

function (data, textStatus) {
  // data could be xmlDoc, jsonObj, html, text, etc...
  this; // the options for this ajax request
}

这取决于你问的数据类型,使用“的dataType”参数,你会得到“数据”的说法。

从文档:

的数据类型(字符串)默认值:智能猜测(XML或HTML)。 该类型是您期望从服务器返回的数据。 如果没有指定,jQuery将智能通过其中的responseXML或responseText的你的成功回调,基于MIME类型的响应。

可用的类型(以及作为第一个参数,以您的成功回调传递的结果)是:

“XML”:返回一个可以通过jQuery处理的XML文档。

“HTML”:返回HTML纯文本; 在DOM插入时包含的脚本标签进行评估。

“脚本”:评估响应为JavaScript,并返回纯文本。 除非选择“高速缓存”用于禁用缓存。 注意:这将打开文章到获取远程域的请求。

“JSON”:评估响应为JSON并返回一个JavaScript对象。

“JSONP”:使用JSONP在JSON块载荷。 将增加一个额外的“?回调=?” 您网址的结尾指定回调。 (jQuery中1.2增补)

“文本”:一个纯文本字符串。

看到http://docs.jquery.com/Ajax/jQuery.ajax#options



Answer 4:

我知道,使您可以使用AJAX跨域的唯一方法是JSONP( http://ajaxian.com/archives/jsonp-json-with-padding )。

及这里的职位一些不同的技术来实现跨域Ajax后( http://usejquery.com/posts/9/the-jquery-cross-domain-ajax-guide )



Answer 5:

首先,你必须下载一个jQuery插件,允许跨域请求。 在这里下载: https://github.com/padolsey/jQuery-Plugins/downloads

导入该文件名为query.xdomainsajax.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
    }
});


Answer 6:

其实,你可以用火狐即,SE这种跨域请求一个概述: http://ajaxian.com/archives/cross-site-xmlhttprequest-in-firefox-3

WebKit和IE8支持它,以及以某种方式。



Answer 7:

由于jQuery的AJAX请求,如果他们是跨域失败了,你可以使用卷曲(在PHP)设立一个代理服务器。

假设一个PHP文件responder.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请求应该是这个responder.php文件,以便执行跨域请求。



Answer 8:

这是超级老了,但希望这可以帮助别人。 我与不同的错误代码回送响应,这是唯一的解决办法我发现,在工作

$.ajax({
    data: {
        "data": "mydata"
    },
    type: "POST",
    url: "myurl"
}).done(function(data){
    alert(data);
}).fail(function(data){
    alert(data.responseText)
});

由于JQuery的过时的successerror的功能,您需要使用donefail ,以及访问数据data.responseTextfail ,而只是data的时候done 。 这类似于@Marco帕文的答案,但你不需要任何的jQuery插件或任何使用它。



Answer 9:

试试这个

alert( data['responseText'] );


文章来源: jquery ajax get responsetext from http url