var obj = new XMLHttpRequest();
console.log("Object.keys():",Object.keys(obj));
console.log("Object.getOwnPropertyNames():",Object.getOwnPropertyNames(obj))
console.log("Object.entries():",Object.entries(obj))
console.log("JSON.stringify():",JSON.stringify(obj))
console.log("console.log:"); console.log(obj)
Run Code Online (Sandbox Code Playgroud)
输出:
Object.keys(): []
Object.getOwnPropertyNames(): []
Object.entries(): []
JSON.stringify(): {}
console.log:
XMLHttpRequest {onreadystatechange: null, readyState: 0, timeout: 0, withCredentials: false, 上传: XMLHttpRequestUpload, ...}
如何在 javascript 中创建这样一个对象,其属性仅使用 打印console.log(obj),但不由上述任何函数返回?
我已经尝试使用constructor function, object.create()(with enumerable:false), Object.assign(), using来创建对象,getters从类中初始化,从扩展类中初始化等
javascript prototype xmlhttprequest prototypal-inheritance ecmascript-6
是否有可能在发送http消息之前,使用javascript/XmlHttpRequest删除一些特定的http标头?
我使用的是专有浏览器,因此没有办法使用特定于浏览器的解决方案.
例如,我想在发送消息之前删除标题'Authorization'
POST /social/rpc?oauth_version=1.0& ... HTTP/1.1
Accept: text/html, image/png, image/*, */*
Accept-Language: ko
Authorization: Basic Og==
Host: test.myhost.com
Run Code Online (Sandbox Code Playgroud)
问候
我是JavaScript编程的新手.我现在正在处理我的Google Chrome扩展程序.这是不起作用的代码......:P
我希望getURLInfo函数返回其JSON对象,并希望将其放入resp.有人可以修改我的代码让它工作吗?
function getURLInfo(url)
{
var xhr = new XMLHttpRequest();
xhr.open
(
"GET",
"http://RESTfulAPI/info.json?url="
+ escape(url),
true
);
xhr.send();
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4)
{
return JSON.parse(xhr.responseText);
}
}
}
var resp = getURLInfo("http://example.com/") // resp always returns undefined...
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我试图通过使用带有url的xmlhttprequest来获取html的源代码.有没有人可以帮我这个?我是编程新手,我不太清楚如果没有jQuery我怎么能这样做.提前致谢.
首先,在SO上有一个相同标题的问题,但它不是我正在寻找的,也没有完整的答案.
所以这是我的问题.假设我有这个指向图像的URL.
https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/299595_10150290138650735_543370734_8021370_355110168_n.jpg
Run Code Online (Sandbox Code Playgroud)
一旦我将此参数放在?dl=1URL的末尾,它就可以下载了.
https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/299595_10150290138650735_543370734_8021370_355110168_n.jpg?dl=1
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过用户脚本执行此任务.所以我使用了XMLHttpRequest.
var url = "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/299595_10150290138650735_543370734_8021370_355110168_n.jpg?dl=1";
var request = new XMLHttpRequest();
request.open("GET", url, false);
request.send(null);
if (request.status === 200)
{
alert(request.statusText);
}
Run Code Online (Sandbox Code Playgroud)
这是一个小提琴.
但它不起作用.
大家好我有这个代码:
function test()
{
req = new XMLHttpRequest();
req.upload.addEventListener("progress", updateProgress, false);
req.addEventListener("readystatechange", updateProgress, false);
req.addEventListener("error", uploadFailed, false);
req.addEventListener("abort", uploadCanceled, false);
var data = generateRandomData(currentPayloadId);
totalSize = data.length;
req.open("POST", "www.mydomain.com/upload.aspx");
start = (new Date()).getTime();
req.send(data);
}
function updateProgress(evt)
{
if (evt.lengthComputable) {
total = totalSize = evt.total;
loaded = evt.loaded;
}
else {
total = loaded = totalSize;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,我的服务器响应了对于upload.aspx的初始OPTIONS请求200和Access-Control-Allow-Origin:*然后第二个请求POST发生
一切似乎都已到位,它在FireFox上运行良好,但在G Chrome上,updateProgress处理程序不会被调用但只调用一次,然后lengthComputable为false.
我需要Access-Control-Allow-Origin:*因为这是一个跨域调用,脚本父级是不同服务器上的资源,然后是upload.aspx域
任何人都可以给我一些线索,提示,请帮忙吗?这是G Chrome的一个已知问题吗?
谢谢!OVA
javascript security google-chrome xmlhttprequest updateprogress
我正在使用Google Chrome,Safari和Firefox中的XMLHttpRequest加载JSON文件.我收到ProgressEvent的所有三个浏览器都正确显示了该.loaded属性.但是该.lengthComputable属性为false且.total属性为零.我已经检查过Content-LengthHTTP标头是否正在发送并且是正确的 - 它是.响应是gzip编码的,但Content-length正确显示编码长度(在解压缩之前).
为什么我的ProgressEvents中总长度不可用?
以下是标题:
HTTP/1.1 200 OK
ETag: "hKXdZA"
Date: Wed, 20 Jun 2012 20:17:17 GMT
Expires: Wed, 20 Jun 2012 20:17:17 GMT
Cache-Control: private, max-age=3600
X-AppEngine-Estimated-CPM-US-Dollars: $0.000108
X-AppEngine-Resource-Usage: ms=2 cpu_ms=0 api_cpu_ms=0
Content-Type: application/json
Content-Encoding: gzip
Server: Google Frontend
Content-Length: 621606
Run Code Online (Sandbox Code Playgroud)
注意:该文件通过Google App Engine提供.
这是JavaScript:
var req;
if (window.XMLHttpRequest){
req = new XMLHttpRequest();
if(req.overrideMimeType){
req.overrideMimeType( "text/json" );
}
}else{
req = new ActiveXObject('Microsoft.XMLHTTP');
} …Run Code Online (Sandbox Code Playgroud) XMLHttpRequest无法加载https://webservice.com?param=hahah.Access-Control-Allow-Origin不允许来源http:// {domain}.
当我尝试通过wampserver进行web服务调用时,我得到了这个,我怎么能在wampserver上启用它?
或者我怎么可能只是jsonP获取xml数据而没有javascript抛出错误.
我已经阅读了很多关于预检和CORS的答案,所以请不要发布引用我应该阅读的内容的链接.许多答案来自服务器视角,但在这种情况下我是客户端.我是否设置了原始标题?我的假设是这是一个简单的请求,对吗?
req.open("POST", url, true);
req.setRequestHeader( 'Content-Type', 'application/blahblah' );
req.setRequestHeader( 'Accept', 'application/blahblah' );
req.setRequestHeader("Authorization", "Basic " + btoa(user + ":" + pass));
req.send();
Run Code Online (Sandbox Code Playgroud)
但它仍然无法正常工作,我的错误:
对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.响应的HTTP状态代码为500.
我尝试将Authorization标头设置为GET请求,以将用户身份验证为其他API.我正在使用Angular 2 RC1.(我是初学者).
getTest(){
let authToken = localStorage.getItem('auth_token');
let headers = new Headers({ 'Content-Type': 'application/json' });
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });
return this._http
.get(this._url,options)
.map(res => console.log(res));
}
Run Code Online (Sandbox Code Playgroud)
我在后端允许CORS.
header("Access-Control-Allow-Origin: *");
header("Access-Control-Request-Headers: Content-Type, Authorization");
Run Code Online (Sandbox Code Playgroud)
我的控制台:
选项api/userProfile /
XMLHttpRequest无法加载/ userProfile /.预检的响应具有无效的HTTP状态代码406
任何的想法 ?
xmlhttprequest ×10
javascript ×8
ajax ×2
cors ×2
angular ×1
closures ×1
download ×1
ecmascript-6 ×1
get ×1
header ×1
html ×1
http-headers ×1
prototype ×1
security ×1
url ×1
userscripts ×1
wamp ×1
wampserver ×1