Javascript 跨子域请求
我需要跨子域请求。有一个经典的asp站点,它创建了一个到我的PL/SQL Oracle网页的XMLHttpRequest asp站点的域为:test/site.asp,PL/SQL网页的域为:7779/site。。。所以顶级域是相同的 这是我的XmlHttpRequest:Javascript 跨子域请求,javascript,oracle,asp-classic,xmlhttprequest,Javascript,Oracle,Asp Classic,Xmlhttprequest,我需要跨子域请求。有一个经典的asp站点,它创建了一个到我的PL/SQL Oracle网页的XMLHttpRequest asp站点的域为:test/site.asp,PL/SQL网页的域为:7779/site。。。所以顶级域是相同的 这是我的XmlHttpRequest: var xmlHttp = null; xmlHttp = new XMLHttpRequest(); xmlHttp.onload = function() { if (xmlHttp.readyState ===
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.onload = function() {
if (xmlHttp.readyState === 4) {
if (xmlHttp.status === 200) {
createChart(divID, xmlHttp.responseText, counter);
} else {
console.error("error");
}
}
};
xmlHttp.open( "GET", theUrl);
xmlHttp.setRequestHeader( "pragma", "no-cache" );
xmlHttp.send( null );
IE11中没有错误,但在Chrome中:
XMLHttpRequest cannot load http://test:7779/site
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://test' is therefore not allowed access.
The response had HTTP status code 501.
是否有跨子域请求的解决方案?也许在我的asp站点中使用iframe来获取内容
更新:
我知道您试图将双方的document.domain设置为相同的:test。但是这也没有解决问题。我的建议是,为什么不使用MSXML2.ServerXMLHTTP对象,因为您手头有经典的ASP?所以XMLHttp请求将从服务器发送到服务器,而不是从浏览器发送 你可以这样使用它
Dim xmlhttp
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.setTimeouts 30,500,1000,1000
xmlhttp.Open "GET", "http://yourlink" & time, false
On Error Resume Next
xmlhttp.Send
If Err.Number Then
getBBstatus = "Could Not Retrieve Data"
Err.Clear
Else
getBBstatus = xmlhttp.ResponseText
' Do something with the response here
End If
On Error Goto 0
Set xmlhttp = nothing
希望能有所帮助,谢谢。顶级域与在不同端口上运行的域不同,实际上是在顶级域上运行的http://test:80 和http://test:7779 还有一种技术也被用来劫持页面,即插入一个标签,将数据作为javascript脚本加载。但是,您必须修改响应,使其表现为类似于pjax的javascript代码/函数。注意:这些技术也被用于劫持网站1中的JSON响应。停止设置自定义请求标头。这将强制执行飞行前请求。或2。让服务器在response@Lankymart在不同的端口上运行意味着从请求的角度来看,它们在完全不同的域上运行?@ZerOne请看,我现在尝试使用此方法,但我想请求的是,此页面检查cookies设置是否插入。这似乎失败了,因为它将我转发到登录页面。有没有办法防止这种情况发生?也就是说,你想请求你的子域只是为了检查用户是否已登录?没有,我想获取一些数据。但此数据仅在用户登录时可用。此请求的登录似乎失败,仅供参考:请求的页面检查用户是否通过指定的Cookie登录。在这种情况下,您需要一个单独的页面,该页面不会检查身份验证并用数据响应,或者您可以在每次请求数据时提交登录凭据,该页面将检查凭据并验证请求。在这两种情况下,都必须更改目标页面。