2013-12-23 134 views
0

On w3schools.com(url)有一个如何使用纯Javascript执行AJAX调用的示例。如果你看一下例子,你会看到呼叫由一个按钮触发:如何获取xmlhttp请求的URL(AJAX)

<button type="button" onclick="loadXMLDoc()">Change Content</button> 

这是函数:

function loadXMLDoc() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","ajax_info.txt",true); 
xmlhttp.send(); 
} 

我想什么做的就是即将离任的AJAX的网址调用哪个是ajax_info.txt(URL):

xmlhttp.open("GET","ajax_info.txt",true); 

我试着去把那个URL中的警报,所以我尝试使用getAllResponseHeaders()希望调用响应的头,我T将给予我的Host像这样:

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    alert(xmlhttp.getAllResponseHeaders()); 

它确实给我所有的信息,但是没有主机。所以我的下一步是试图设置主机我自己使用setRequestHeader()但后来我意识到头需要一个价值,我不得不发送自己,所以这是行不通的。我还有什么可以尝试在alert中获取/取出传出的AJAX URL?

请注意,代码仅仅是一个例子,我知道由于Access-Control-Allow-Origin的缘故,禁止更改标头(在这种情况下)。

+0

[标准警告关于w3schools。](http://w3fools.com) – Pointy

+1

我知道他们不是最好的,我只是用它们作为例子 – Youss

回答

2

我不确定你有多少访问代码,但你可以覆盖XMLHttpRequest.open并挂钩在那里的网址。

XMLHttpRequest.prototype.open = (function(open) { 
    return function(method,url,async) { 
     console.log('the outgoing url is ',url); 
     open.apply(this,arguments); 
    }; 
})(XMLHttpRequest.prototype.open); 

这是FIDDLE

+0

在我的项目中,我不知道传出的URL,如果我知道我不必去取... – Youss

+0

@Youss,你如何将传出的URL传递给XMLHTTPRequest对象? – fbynite

+1

我没有传递任何东西,我刮了进行AJAX调用的网站。所以我需要得到这些传出URL – Youss