无论是:
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的过时的success
和error
的功能,您需要使用done
和fail
,以及访问数据data.responseText
时fail
,而只是data
的时候done
。 这类似于@Marco帕文的答案,但你不需要任何的jQuery插件或任何使用它。
Answer 9:
试试这个
alert( data['responseText'] );
文章来源: jquery ajax get responsetext from http url