无论是:
var response = $.ajax({
type: "GET",
url: "http://www.google.de",
async: false,
success : function() {
alert (this);
}
});
Run Code Online (Sandbox Code Playgroud)
也不:
var response2 = $.get("http://www.google.de", function(data) {
alert("Data Loaded: " + data);
});
Run Code Online (Sandbox Code Playgroud)
给我一个对象.我如何获得访问权限responseText?
在JS中,是否可以获取将其分配给变量的网页内容?例如,为什么以下玩具代码不起作用?
var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.com', false);
req.send(null);
if(req.status == 200)
alert(req.responseText);
Run Code Online (Sandbox Code Playgroud)
有更好的方法/代码吗?
我正在研究前端网络和休息服务之间的连接.我成功地进行了跨域Ajax调用,但我仍然遇到了一些问题.
发生400错误时无法接收responseText.
我用wireshark验证了,我确定responseText是由REST发送的.但当我看到萤火虫时,我就是这样的:
POST http:api.yutagz.com用户400 Bad Request 133ms
对象{readyState = 0,status = 0,statusText ="error"responseText =""}
'400错误请求'没问题,但我需要responseText来告诉用户实际发生了什么.
这是我的呼叫代码(处理成功事件):
$.ajax({
type: "POST",
url : "http://api.yutagz.com/users",
data: dataString,
dataType: 'json',
success : function(data,data1,data2){
alert("OK : "+data);
console.log(data2);
},
error:function (xhr){
alert(JSON.stringify(xhr));
console.log(xhr);
switch (xhr.status) {
case 404: alert("404");
case 400: alert("400");
// Take action, referencing xhr.responseText as needed.
}
},
complete : function (xhr){
alert(JSON.stringify(xhr));
console.log(xhr);
switch (xhr.status) {
case 404: alert("404");
case 400: alert("400");
// Take action, referencing xhr.responseText as needed.
} …Run Code Online (Sandbox Code Playgroud) 我是javascript和php的新手,我的目标是:从xmlhttp responseText返回字符串到函数返回值.所以我可以将它与innerText或innerHTML方法一起使用.HTML代码:
<script>
function loadXMLDoc(myurl){
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
xmlhttp.responseText;}
}
xmlhttp.open("GET",myurl,true);
xmlhttp.send();
}
</script>
Run Code Online (Sandbox Code Playgroud) 这是我的Ajax功能的一部分.由于某种原因,我无法弄清楚,我能够提醒() responseText但不能返回 responseText.有人可以帮忙吗?我需要在另一个函数中使用该值.
http.onreadystatechange = function(){
if( http.readyState == 4 && http.status == 200 ){
return http.responseText;
}
}
Run Code Online (Sandbox Code Playgroud) $.ajax({
url: 'http://jsonplaceholder.typicode.com/posts/1',
method: 'GET',
}).done(function(data){
console.log(data);
console.log(data.responseText);
});
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我理解为什么console.log(data.responseText);返回undefined?
http://clarkben.com/ajaxtesting/
编辑:好的,所以看起来数据不是jqXHR对象.如果将整个$ .ajax语句分配给变量,那么该变量是一个jqXHR对象,因此可以通过这种方式访问它.我不知道为什么传入.done的函数的数据不是jqXHR对象.
var theRequest = $.ajax({
url: 'http://jsonplaceholder.typicode.com/posts/1',
method: 'GET',
}).done(function(data){
console.log(data);
console.log(theRequest.responseText);
});
Run Code Online (Sandbox Code Playgroud) 有没有办法在不破坏XHR对象的情况下清除XHR对象的responseText?
我需要保持对Web服务器的持久连接,以将实时数据提供给浏览器.问题是,有相对大量的数据通过(每秒几百K),因此内存使用是一个大问题,因为此连接必须保持打开至少几分钟.responseText变得非常快,即使我发回的JSON已经被碾压得尽可能小.
由于服务器端应用程序的工作方式,如果我使用AJAX样式的短轮询并且在完成它时只破坏XHR对象,我会错过大量的重要数据,即使在解析它的几毫秒内也是如此.响应,创建一个新的XHR并将其发送出去.我没有选择使用重叠请求,因为Web服务器一次只接受一个连接.(不要问.)所以Comet正是我需要的模型.
我想要做的是解析从服务器返回的每个JSON块,然后清除responseText以便我可以继续使用相同的连接.但是,responseText是只读的.它不能通过我找到的任何方法直接清空.
我在这里缺少一部分照片吗?当我读完它时,有没有人知道我可以用来释放responseText的任何技巧?或者服务器响应可以到达另一个地方吗?
我不包括代码,因为这几乎是一个与代码无关的问题.生成XHR并处理返回数据的Javascript例程非常非常简单.
我正在编写一个google-chrome扩展程序,它需要向服务器发出ajax请求,发送一些数据并接收一些数据.我的服务器是Tomcat 6.0,在localhost上运行.
我能够在服务器端接收所有数据,执行我需要的所有处理,并将响应发送回扩展,但我在回调中得到的状态是0,而responseText ="".
我的猜测是问题出在服务器上 - 返回对源自chrome-extension:// ... url的请求的响应,或者在扩展中 - 从localhost接收响应:8080.
我当然设置了必要的权限,我尝试将响应的内容类型设置为"text/xml","text/html"和"text/plain" - 它没有任何区别.我已经尝试过使用XMLHttpRequest和JQuery的ajax - 两者都有同样的问题.我发现这些问题,但他们似乎并没有解决我的问题:
1. http://www.plee.me/blog/2009/08/ajax-with-chrome-empty-responsetext/
2. HTTP: //bugs.jquery.com/ticket/7653
这是我的代码:bg.js(背景页面)
function saveText(data) {
var requrl = serverUrl + addTextUrl;
var params = json2urlParams(data);
jQuery.ajax({
type : "POST",
url : requrl,
data : params,
success : function (data, textStatus, XMLHttpRequest) {
console.log("Data Saved: " + msg);
}
});
// var xhr = new XMLHttpRequest();
// xhr.open("POST", requrl, true);
// xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// xhr.onreadystatechange = function (progress) {
// if (xhr.readyState …Run Code Online (Sandbox Code Playgroud) 在经过多次尝试阅读httprequest的响应后仍然苦苦挣扎,这是一个代表jpg图像的二进制数据流.
编辑:整件事
xmlhttp = false;
/*@cc_on@*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end@*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个 chrome 扩展,它能够向/从 python 服务器脚本发送/接收数据。目前,我正处于 js 脚本发出 GET 请求的时候,唯一的问题是 .responseText 始终为空(即使 python 脚本正在响应文本)。
弹出窗口.js
document.addEventListener('DOMContentLoaded', function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == xhr.DONE) {
var resptxt = xhr.responseText;
if (resptxt) {
document.getElementById('texthtm').innerHTML = resptxt;
} else {
document.getElementById('texthtm').innerHTML = "no response";
}
}
}
xhr.open("GET", "http://127.0.0.1:80", true);
xhr.send();
});
Run Code Online (Sandbox Code Playgroud)
服务器.py
import time
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
HOST_NAME = "127.0.0.1"
PORT_NUMBER = 80
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
def …Run Code Online (Sandbox Code Playgroud) javascript python xmlhttprequest basehttpserver responsetext
responsetext ×10
ajax ×7
javascript ×6
jquery ×3
html ×2
alert ×1
apache ×1
binary-data ×1
comet ×1
fetch ×1
get ×1
long-polling ×1
python ×1
response ×1
return ×1